兄弟们帮忙看一下:
客户端:
---------------------
winsock1.senddate"aa"
winsock1.senddate"bb"
winsock1.senddate"cc"服务器
------------------------
winsock1.getdate MSG 'MSG得到的值是"aabbcc" 具体如何解决?????多谢各位兄弟!!!!!
客户端:
---------------------
winsock1.senddate"aa"
winsock1.senddate"bb"
winsock1.senddate"cc"服务器
------------------------
winsock1.getdate MSG 'MSG得到的值是"aabbcc" 具体如何解决?????多谢各位兄弟!!!!!
aa
bb
cc那么你自己加回车换行符winsock1.senddate"aa" + vbCrLf
winsock1.senddate"aa" + vbLf
也可以加个延迟
doevents
winsock1.senddata"bb"
doevents
winsock1.senddata"cc"
'TODO:设置SOCKET选项
Dim lResult As Long ' Results of 1st option.
Dim lResult2 As Long ' Results of 2nd option.
Dim linger As LINGER_STRUCT
On Error Resume Next
lResult = setsockopt(WsckMain.SocketHandle, IPPROTO_TCP, TCP_NODELAY, 1, 4)
If (lResult = SOCKET_ERROR) Then CheckDllError
If Err.number <> 0 Then
WriteToDebugWindow 4, "SetSocketOption", "设置TCP_NODELAY时发生错误:" & Err.Description
Err.Clear
Else
WriteToDebugWindow 1, "SetSocketOption", "设置TCP_NODELAY成功"
End If
linger.l_onoff = 1
linger.l_linger = 5
lResult2 = setsockopt(WsckMain.SocketHandle, SOL_SOCKET, SO_LINGER, linger, LenB(linger))
If (lResult2 = SOCKET_ERROR) Then CheckDllError
If Err.number <> 0 Then
WriteToDebugWindow 4, "SetSocketOption", "设置SO_LINGER时发生错误:" & Err.Description
Err.Clear
Else
WriteToDebugWindow 1, "SetSocketOption", "设置SO_LINGER成功"
End If
On Error GoTo 0
End Sub
To:tztz520(午夜逛街) doevents这个方法好像效率不高。To:of123()
2 客户端打包发送,服务端拆包。能否具体举个例子???多谢!!!!
解决后马上揭帖。
winsock1.senddate"bb"
winsock1.senddate"cc"
中间加上doevents
具体如何实现呢??????分不够再加。
多谢各位兄弟!!!!!!!
因为winsocks在执行发送语句后,只有释放一次cpu,sock缓存才会执行到发送操作.
我写的发送和接受的程序
自定义的握手协议.
vb6 和vb2005的代码都有.
winsock1.senddate"bb"& "@#@"
winsock1.senddate"cc"& "@#@"
在客户端如果收到数据后判断有"@#@"则自动分拆