Socket收发大量信息的问题--------〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉〉 clientsocket发了1024*80 +1 bytes 的信息给serversocket,serversocket触发几次onclientwrite?每次分别是多少?怎么能判断整个8k数据接受结束了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sorry,应该是:怎么能判断整个80k+1数据接受结束了? 对了,是触发onclientread还是write? 那么怎么确定什么时候接受完毕了呢?socket.receivelength是本次触发onclientread接受的数据量还是整个80*1024+1bytes?怎么判断接受完毕呢?要自己定义协议? |begin|fdasfklds;ajfdasjflsjalfjasjfdslkfajlasjf;sajfjdalkfjdslkajfdsajfldskajfdl;asjf;djafdsjafsdafjsa|end|将Message 的 数据头和数据尾设为一定的规格,尽量避免重复性即可OnRead的 时候 每次检测ReceiveMessage 的头部是否包含 |begin| ,或者检测尾部是否包含|end|,只要没有检测到尾部含有 |end| 就将接受的ReceiveMessage 全部累加到一个全局量中。 这样你怎么知道客户法的信息里面没有“begin”? 我用VC做了Socket的,我想触发的次数,应该是自己来管理,如果没有隐性触发也就是间接触发。 还有读入的数据要看设置的buff的大小了。 呵呵,socket底手,只是建议 不用管几次吧,只要能把数据接受完就可以了,自己定义一下数据包的结构,在发送的时候把包的长度也作为包的一部分发过来eg:包头 |包的信息|包的长度|…………|…………| 包体 数据接受后先把包头解开,然后判断recievelength和包的长度的大小,决定是否继续接受 Socket 8k 的瓶颈是无法排除的,但是我们可以1 把数据压缩,如果还大于8K 那么在采用 2-32 把数据分割多次发送3 数据分割多线程同步发送 delphi 怎么在DBF表里面添加数据 delphi自动填写上传图片的问题 急!!! 数存储和寄存器的位是否一致的问题 求教: 帮忙分析一下这个函数(DELPHI菜鸟) 求名次的排序解决方法 获取每个文件的图标 怎样给一个已有的db文件加一个字段?要代码! .........这里用什么语句能实现在test.txt里找个字符串'new year'? 哪里有ANSI-92 SQL语法下载? 谁做过关于自动排课的程序 请教能否用SQL语句创建DBF数据库。 大家来谈谈学delphi的经历,来者有分!
应该是:
怎么能判断整个80k+1数据接受结束了?
socket.receivelength是本次触发onclientread接受的数据量还是整个80*1024+1bytes?怎么判断接受完毕呢?要自己定义协议?
呵呵,socket底手,只是建议
eg:包头 |包的信息|包的长度|…………|…………|
包体 数据
接受后先把包头解开,然后判断recievelength和包的长度的大小,决定是否继续接受
1 把数据压缩,如果还大于8K 那么在采用 2-3
2 把数据分割多次发送
3 数据分割多线程同步发送