能力值:
( LV9,RANK:780 )
|
-
-
2 楼
send端发送时对可以对数据进行编码 ,比如长度+字节集内容+长度+字节集内容...这样的结构,例如以{0}做结束标志,接收端以1K为单位接收,直到接收到{0}。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
send/recv是同步的,一个send对应一个recv,这是一个全双工模式
在正式交互数据之前,一般都要做一个是否Link成功的校验
而且通信双方都是有一整套协议的,数据包类型啊,长度啊等等,所以不存在LZ的这些的问题
比方说,客户端和服务器Link成功后,客户端先向服务器发出一个请求
这个发出请求的数据包长度可以很小(保证服务器接收数据的缓冲区够用),里面就有事先规定好的数据包类型
有了这个数据包类型,服务器就知道下一次要接收的数据包长度等信息,再根据长度分配好缓冲区
当然了,如果不存在这个数据包类型,服务器就不会响应,确认后服务器向客户端发出通知,已准备好接收数据
同样这个发出通知的数据包长度也足够小(保证客户端接收数据的缓冲区够用)
客户端收到这个通知后,就可以向服务器发出正式的数据包了,然后服务器就用之前分配好的缓冲区来接收
最后服务器根据接收到的数据包来执行对应的操作,并反馈给客户端,这一来一去就完成了一个全双工的通信
有了这一套事先规定好的协议,通信双方就不存在什么问题了
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
LS两位说的,其实正是我所想的。只是我在问的是另一种可能。
虽然你们没有正面回答,但从侧面已经告诉我,这种可能不存在。
谢谢!
|
|
|