Q&A

  • 소켓 테스트중에 ClientRead이벤트에 send와 Receive 둘다 가능한지..
테스트 중인데...
ClinetRead 이벤트에 데이터 전송과 데이터 리시브가 동시에 가능한가요??

서버 콤포넌트만 떨궜구염... 델파이가 서버가 되고

PDA가 클라이언트가 되는데...

PDA에서 보낸 데이터는 델파이가 잘 받아들입니다.

그런데 ClientRead 이벤에 둘다 적었더니 서버에서

PDA로 전송하는건 안되네염(Sendbuf로 했음) 안되네염..

다른 이벤에 send는 해야 하나요???

PDA가 아예 서버를 찾지 못하네요.. 같은 연결 소스로 했는데...

왜 PDA가 보내는건 받아지고 서버가 보내는건 안될까염??

procedure TForm1.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);

var
  ReBuf: array of char;
  SendBuf : array of char;
  RcvResult : string;
  SendResult : string;
  ReceiveBufLeng : integer;
  SendBufLeng : integer;

begin
   server.Active := true;

   SetLength(Rebuf, 4096);

   ReceiveBufLeng := Socket.Receivebuf(pChar(ReBuf)^,4096);

   SetLength(ReBuf, ReceiveBufLeng);

   RcvResult := RcvResult + widestring(Rebuf) ;

   Showmessage(RcvResult);

   SendResult := widestring('111');

   setlength(sendbuf, 4096);

   SendBufleng := Socket.sendbuf(pchar(Sendbuf)^,4096);

end;

저렇게 한 이벤에 둘다 있으면 안되는건가요???

따로 해줘야 한다면... send는 어디에 해야하는지.....

고수님들.. 답변 부탁요~~



1  COMMENTS
  • Profile
    이승민 2003.11.19 18:24
    Socket 프로그램시 ClientRead  안에 Recieve 와 Send 가 같이 있어도 상관 없습니다.

    하지만 PDA가 아예 서버를 찾지 못하신다고 하니 Server 가 Open 이 되지 않은거 아닌가요?

    소스 제일 첫째줄에 server.Active := true; 이게 있어서 드리는 말씀입니다.

    그럼 확인해 보시고 즐코되세요...