Q&A

  • TServerSocket 이용 SendText 로 보내면 클라이언트가 못받습니다.
서버 쪽에서 클라이언트가 접속을 해서 문자를 보내면 받아서 클라이언트쪽에다 보내는겁니다.

procedure TMainForm.ServerSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
    ResultBuff:  String;
begin

    ResultBuff := Socket.ReceiveText;

    Socket.SendText(ResultBuff);

    //ServerSocket.Active := false;
    //ServerSocket.Active := true;

end;

그런데 이게 웃기는 현상이 서버쪽에서 sendText 를 하면 처음에는 안오고..
클라이언트쪽에서 다시 접속해서 문자를 보내면 데이터가 오거나 아니면
아래의 주석처럼 서버쪽 소켓을 닫았다 오픈하면 제대로 들어옵니다.

이걸 계속 서버쪽에서 서버소켓을 닫았다 오픈한다란게 좀 수상하고 무슨 다른 처리방법이 잇는건지요 T_T

좀 알려주시면 고맙겟습니다.
1  COMMENTS
  • Profile
    한만교 2003.07.15 03:12
    중간에 Sleep를 해 보시거나
    아니면 데이터 송수신용 프로토콜을 하나 만드시져..
    예를 들어서 aaa를 보내면 클라이언트가 이걸 받은다음에 다시 서버에 데이터를 보내는 반이중방식으로 만드시져..
    지금 같은 현상은 데이터를 받은다음 다시 곧바로 전송하기에 통신을 중간에 끊는 현상때문에 생기는 현상이거나 데이터가 중첩되서 나오는 현상입니다