IdTCPServer接收包时请问如何确定,就是说在未正式接收时要先知道包的大小????
本版专家分:15677
先接收包大小嘫后按大小接收数据
除了这样就没有其他办法吗
自定义通信协议为:包头+包体
接收时先接收包头,就知道是哪个包体大小是多少了。
如题在indy 编程中,我需要用服务端接收多个客户端的信息并根据客户端信息返回不同的结果
tmpstr,iret为全局变量iret在addtmpstr中被赋值(与tmpstr值有关),如果不设临界区的话就会出现多个线程之间相互干扰的现象(不如客户端1收到的是本应该是2的值)如果设临界区的话(把//打开),如果其中一个客户端只建立连接而不发送數据的话线程就会阻塞在Tmpstr:=CurrentReadBuffer;这里,临界区无法释放其他客户端就无法与服务器交流。
其它某些文件传输代码精练很多,傳输的文件大小任意,个人建议:写网络文件传输程序时最好用Indy的控件(因为其默认即阻塞模式,Server端已封装了多线程,没有数据包大小限制),ClientSocket VS ServerSocket传输文件佷麻烦,要自定通信协议,并且有个8KB的瓶颈,实现大文件传输比较麻烦,
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。