T
terrace
Unregistered / Unconfirmed
GUEST, unregistred user!
我用的Delphi5+Win2000,在TCP/IP下进行非阻塞的服务器端ServerSocket和客户端ClientSocket通讯,问题如下:
1:如何清空Socket的缓冲区,好象并没有Flush函数,执行ClientSocket.active:=false或ClientSocket.Socket.close是否可以清空Socket的缓冲区?
2:Socket自带的缓冲区是什么样的数据结构?(我认为应该是个循环队列,否则怎么去避免后来的数据覆盖前面的呢?)
3:客户端的Socket是单线程的还是多线程的(即是否会同一Socket同时有两个ClientSocket1Read(Sender: TObject;Socket: TCustomWinSocket)函数在执行读数据过程?),我测试的结果好象兼有单线程和多线程的表现,如果是多线程的,那么如何保证数据接收的准确性和次序一致性呢?
1:如何清空Socket的缓冲区,好象并没有Flush函数,执行ClientSocket.active:=false或ClientSocket.Socket.close是否可以清空Socket的缓冲区?
2:Socket自带的缓冲区是什么样的数据结构?(我认为应该是个循环队列,否则怎么去避免后来的数据覆盖前面的呢?)
3:客户端的Socket是单线程的还是多线程的(即是否会同一Socket同时有两个ClientSocket1Read(Sender: TObject;Socket: TCustomWinSocket)函数在执行读数据过程?),我测试的结果好象兼有单线程和多线程的表现,如果是多线程的,那么如何保证数据接收的准确性和次序一致性呢?