我用的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)函数在执行读数据过程?),我测试的结果好象兼有单线程和多线程的表现,如果是多线程的,那么如何保证数据接收的准确性和次序一致性呢?
解决方案 »
- Delphi中流的ReadBuffer和Read什么区别?
- interweb中,关于网页支持后退的问题?
- 报表连续打印
- 奇怪!!!!!!!!!!!!!!!!!!!!!!!!!!!!用ADO不行,用ODBC就可以?why?
- 这用的功能怎么实现?
- 怎样调试activex?在线等待
- delphi项目太大,如何根据label的text属性快速定位到源码文件
- 求<VCL架构剖析>原版
- 急!急!!急!!!用installsheld打包时,若想安装后在程序组中出现两个应用程序,应怎么设置?
- 初学者问题,望再高手帮忙!
- Socket通讯中对接收到的数据有时处理成功有时失败,再不解决就下岗了,高手救命呀!!!
- 关于sum对文本字段求和
“TCP/IP详解”这书不错。