当ServerSocket向ClientSocket发送较长数据。用的是SendBuf方法经调试发现ClientSocket的Read事件多次发生,每次只接收8192个字节,(最后一次除外),但是所有的字节数加起来比ServerSocket发送过的的字节数大。这是怎么回事呀?我的程序必须等待所有的数据接收完后才能进行下一步处理,该如何做呀?
解决方案 »
- delphi人脸比对sdk包
- 如何实现多个窗口在不同的显示器中显示
- 问个比较麻烦的问题....
- 用QQ、做网站、玩网游 都有人盗号!
- Delphi6报表打印时,各字段控件的位置是固定的,能不能自动向左移动?
- application.message()
- 求delphi 5 开发人员指南 配书源码!!!!!!200分相送!提供网址即可!下载成功给分!
- 如何在delphi中直接使用directdraw???
- 200分求教高手:OLE自动化对象调用的问题
- 我写一个把图片存入数据库的小软件,但是在我把图片存入数据库后,再浏览时点确定就出错了。
- SQL Server 2000中文版下载分享
- 基础模态窗口问题,百思不得其解。望高人指点,50分。
在D7中用TidTCPClient和TidTCPServer就可以高缓冲区大小。可以解决这个问题!!!但我又不知TCPServer怎样发数据给TCPClient,郁闷ing!!!!
我调试过了,当传输量于于8192字节时,每次传递的字节数socket.ReceiveBuf与socket.ReceiveLength的长度是一样的;
总值加起来都比实际发送字节要大
有什么方法让等数据全部接收完后再执行Read事件
socket.ReceiveBuf我用了很多,发送大文件的时候也没有发现你所说的问题。可以载发送的数据大小放在数据头里,接收指定大小的数据。