qTCP 连接,当网络中断时,会有一个消息返回 。
1、连接后,分数据传输和应答传输。
2、服务器端,也同样分这二种。
3、连接服务器成功后,定时发送 应答包。或者从服务器上发应答包回来。只能一方主动发应答包。
应答包可以是
一个字符 ,如 一个 星号 。
4、接到 应答包后 ,也直接回复一个 字符,建议与应答包不同。
应答包发送频率建议 为 0.5秒 一个。
5、VB网络连接过程中,如果发送消息时,网络中断,立即会产生错误消息,这个错误可以响应的。
6、在VB网络连接过程中,如果不发送消息时,网络中断,不会立即产生错误消息,要到下一次发送消息时,才会收到错误消息。
UDP连接 ,属无连接模式。在VB中 ,可以学习QQ的传输模式进行操作。
1、每个数据包,发送二次, 服务器端收到数据包里,根据数据包里的编号,丢弃一个。 数据包要保存在内存中,收到回包后才能清除。
2、服务器收到数据包后,回复同样编号的数据包,仍然发送二次。
3、当发送的数据,在规定时间内没有收到 相同编号的数据回包,重发这个数据包一次。规定时间可以定义为 30秒。
4、当重发的数据包,仍然超时没有收到回包,则按断线处理。
5、发包数量。客户端,可以定义为一次最大发包,如100个包,然后等回包,只有收到回包后,才能冲销掉这个数据包,然后产生新的数据包。保存到这个位置。然后重新等待。
type 数据包结构
包 as string
'需要发的包数据
计数 as long
'秒计数,用定时器每秒加一
发包次数 as long
‘一次只发一次,每发一次包,次数+1 。没达到 2 的情况下,继续发送。
重发 as Boolean
end type
dim 数据包(1 to 100) as 数据包结构
定时器
for i=1 to 100
数据包(i).计数=计数+1
if 数据包(i).发包计数<2 then
call 发包(数据包(i).包)
数据包(i).发包次数= 数据包(i).发包次数+1
数据包(i).计数=0
end if
if
数据包(i).计数>30 then
if
not 数据包(i).重发 then
数据包(i).重发=true
数据包(i).发包次数=0
数据包(i).计数=0
else
'断线处理
end if
end if
next i