发送的BUF里并没有带有这些信息。你是指TCP报文框架里的长度吗?一般TCP一个报文大概有4K。如果此次接收的内容不足4K,是不是就认为此次发送完毕了?如果涉及到分包,是否循环等待并读取?但最后如何判断所有报文发送完毕了?
解决方案 »
- Delphi房屋租赁系统
- Delphi 導入 Flash 控件,如何讓它實現透明背景? 能不能做到?
- 使用GetPrivateProfileString出现错误
- 关于sql语句
- DateTimePicker问题,不能显示当前时间
- FieldByName('Err').AsInteger为什么会把负数转换为正数?
- 对文本格式化读写如何操作?
- 我SELECT语句出来的集,用dbgrid显示出来,但用mouse点击不能修改,
- 如何将一个时间值减去一个分钟数??
- 关于DbLookupCombobox的问题。
- 我自己写个组件,在里面想使用事件怎么办
- cxgrid 设置 cellmerging后 选择的颜色
包1 11 22 33
包2 44 55 66
包1 包2都会放入系统缓冲区等待发送,如果包1未及时发出,那么非常可能导致包1 包2一起被发出,你服务器端收到就是11 22 33 44 55 66,你本意是2个包,但是服务器端收到的是一个包,必须得有协议拆开,固定长度,包头带长度,包尾结束符,显然固定长度不可能,包头带长度是最好的解决办法,我目前看的所有网游包头都带长度。