C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[5211] Server 와 Client Socket에서? (고수님들은 아실텐데)
시빌더사냥꾼 [] 2714 읽음    2001-02-06 11:54
안녕하세요..질문을 많이 해서 죄송합니다.
궁금한게 너무 많아서요..친절히 알려주시는 님들이 계셔서 질문을 하는데
많은 용기가 생깁니다.

------질문 내용 정리-------
Login Form의 소스입니다...보시고 연결 했을 시에 메시지와 자동링크를 할 수 있도록
하는 방법은 어떻게 해야하는 지...
즉, 서버에는 DBGrid와 SeverSocket으로 연결을 해서 쿼리로 id검색을 할 수 있습니다.
그런데 이걸 Login Form(ClientSocket)에서 id와 pass를 입력하고 Login 버튼을 클릭을
했을 때 DB에서 이 해당 아이디의 유무를 조회하고 아이다가 존재하면
"환영합니다" 메시지가 보이면서 메인(특정 게임이나 홈페이지 폼)으로 이동할 수 있는 방법은 없는지요? 지금 생각을 하고 있는데 실마리가 잘 안보입니다. 초보의 눈을 밝게 길을 인도해주시길.
고수님들의 많은 도움을 부탁드립니다.

//--------------------------------------------------------
Unit.cpp

//---------------------------------------------------------------------------

#include <vcl.h>
#include <winsock.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TLoginform *Loginform;

SOCKET GlobalSocket;

//---------------------------------------------------------------------------
__fastcall TLoginform::TLoginform(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TLoginform::LoginButtonClick(TObject *Sender)
{
          String str =    "login|" +
                          Edit1->Text +
                          "|" +
                          Edit2->Text +
                          "|";

          ClientSocket1->Socket->SendText(str);

          Edit2->Text = "";



}
//---------------------------------------------------------------------------

void __fastcall TLoginform::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
        ErrorCode=0;    //서버 연결 실패로 단정

        StatusBar1->Panels->Items[0]->Text = "Error 발생 하였습니다.";

        ClientSocket1->Socket->Close();
        ClientSocket1->Active = false;

        Edit1->Text = "";
        Edit2->Text = "";
}
//---------------------------------------------------------------------------




void __fastcall TLoginform::Button3Click(TObject *Sender)
{
        //설정을 먼저 하기 전에 클라이언트 활성화 를 죽인다.
        if(ClientSocket1->Active)
        {
                ClientSocket1->Active = false;
        }


        if(InputQuery("연결을 설정 하십시요.","주소(IP) : ",Server))
        {
                if(Server.Length() > 0)
                {
                        ClientSocket1->Address = Server;
                        ClientSocket1->Active = true;
                }
        }

        StatusBar1->Panels->Items[0]->Text = ClientSocket1->
                                             Address +
                                             " 로 연결중 되었습니다.";
}
//---------------------------------------------------------------------------


void __fastcall TLoginform::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
        StatusBar1->Panels->Items[0]->Text = "서버와 연결이 끊어 졌습니다.";
}
//---------------------------------------------------------------------------

void __fastcall TLoginform::Button2Click(TObject *Sender)
{
        ClientSocket1->Active = false;
        ClientSocket1->Active = true;;

        StatusBar1->Panels->Items[0]->Text = ClientSocket1->
                                             Address +
                                             " 로 연결중..";
}
//---------------------------------------------------------------------------
enidif



//---------------------------------------------------------------------------

Unit.h

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ScktComp.hpp>
#include <ComCtrls.hpp>
//---------------------------------------------------------------------------
class TLoginform : public TForm
{
__published:    // IDE-managed Components
        TEdit *Edit1;
        TEdit *Edit2;
        TButton *LoginButton;
        TClientSocket *ClientSocket1;
        TButton *Button1;
        TLabel *Label1;
        TLabel *Label2;
        TStatusBar *StatusBar1;
        TButton *Button2;
        TButton *Button3;
        void __fastcall LoginButtonClick(TObject *Sender);
        void __fastcall ClientSocket1Error(TObject *Sender,
          TCustomWinSocket *Socket, TErrorEvent ErrorEvent,
          int &ErrorCode);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall ClientSocket1Disconnect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall Button2Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
        String Server;          //IP Address
        __fastcall TLoginform(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TLoginform *Loginform;
//---------------------------------------------------------------------------
#endif

+ -

관련 글 리스트
5211 Server 와 Client Socket에서? (고수님들은 아실텐데) 시빌더사냥꾼 2714 2001/02/06
5226     Re:Server 와 Client Socket에서? (고수님들은 아실텐데) 제라툴 2736 2001/02/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.