시온스 님이 쓰신 글 :
:
: //socket = TIdTCPClient
:
: socket->Host = serverIP;
: socket->Port = serverPort;
: try{
: socket->Connect(); // 접속
: socket->Socket->WriteLn("안녕하세요"); //전송
: socket->Disconnect(); // 종료
: }catch(...){}
:
:
:
:
:
: 아주 간단한 코드인데;; 저렇게 전송하면 받는 서버에서는
:
: 리시브스트링: ?????
: 리시브바이트: 3F 3F 3F 3F 3F
:
:
:
: 저렇게 되네요;
:
: 그래서 이상하다 이상하다 해서 utf8로 해보라는 얘기가 있어서 어떻게 하는지몰라서 이렇게 했는데 똑같네요;
:
: socket->Socket->WriteLn(UTF8String(Name->Text));
:
: 리시브스트링: ?????
: 리시브바이트: 3F 3F 3F 3F 3F
:
:
:
:
: 이거 왜이런건가요 ㅠㅠ
Blocking 소켓인지 Nonblocking 소켓인지 지정할 만한 속성이 안 보이고 OnConnected 이벤트는 있는 것으로 보아 Nonblocking 소켓인듯...
따라서, Connect 메서드를 호출하면 연결시도만 하고 바로 리턴하는 것으로 알고 있습니다만,
리턴 시 이미 연결되어 있는 경우도 있겠지만 그렇지 않은 경우도 있겠지요.
그렇다면 OnConnected 이벤트 핸들러에서 WriteLn 작업을 해야겠지요.
|