客户端和服务器端用Socket发送和接收数据,但是服务器上有时会接收不到,比如发送一个简单的H字符第一次发送的时候服务器接收,再发一次可以接收到,(很多都是一次就可以接收到的),这个跟系统的服务进程有关,还有这个最有可能是出现的哪里的问题呢。谢谢了

解决方案 »

  1.   

    我是用的TServersocket控件,不确定在和很多机器同时通讯时是否有接收不到的情况,在接收数据只是在控件的onRead事件上写的
    procedure TFrmMain.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);然后信息处理就是在这里;这种和缓冲区的设定有关系吗,如何设定的
      

  2.   

    服务端用事件接收,客户端应该用线程接收,否则可能漏掉数据。另外可以考虑用delphi的udp组件,两边都用udpserver,在它的事件里接收就行,应该没有问题
      

  3.   

    上面我写的procedure TFrmMain.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);这就是服务端的,我是用事件接收的,不知道用线程如何来接收,小弟对这块也是初次接触,还望多多指教
      

  4.   

    Socket一般不会接收不到的呢。肯定是你的代码有问题呢