你用的非阻塞方式。
中间SLEEP()可以吗?

解决方案 »

  1.   

    只是由于TCP协议的问题,TCP会自己选择数据包的大小,如果想了解更多,
    QQ:15056091联系
      

  2.   

    方法1.先发送‘first’,服务器收到后发送‘ok’表示以收到,再发送‘Second’方法2.使用字符串列表。StringList.values['first']:='first'
                          StringList.values['Second']:='Second';  
      

  3.   

    以下是我在大富翁看到的,但还是收到连续的字符串,怎么办怎么办???
    在客户端程序中进行如下调用时 
    clientsocket1.Socket.SendText(‘gets‘); 
    clientsocket1.Socket.SendText(‘gets‘); 
    clientsocket1.Socket.SendText(‘gets‘); 
    服务端接收时会出现getsgets之类的现象,这可能是因为当缓冲区内的数据还未发送完时,又将新的文本放入缓冲区,计算机把它也当成同一批数据进行处理的缘故。为避免这个现象的发生,在程序内可采用一来一回“抛球”式的做法: 
    客户端 服务端 
    clientsocket1.Socket.SendText(‘data1‘) socket.ReceiveText; 
    socket.sendtext(‘ok‘); 
    socket.receivetext; 
    clientsocket1.Socket.SendText(‘ data2‘) 
    socket.ReceiveText; 
    socket.sendtext(‘end‘); 
    socket.receivetext;