注册 登录
编程论坛 VB6论坛

为什么接收到的点横坐标没变???

小篮子 发布于 2013-03-06 11:14, 257 次点击
用winsock控件发送坐标点到接收端
发送端部分代码:
Private Sub Timer1_Timer(Index As Integer)
····
 For i = 0 To n
    Picture1.PSet (px(i), py(i)), vbRed '两点画线
    Winsock1.SendData "a" & px(i) & "b" & py(i) & "c"
 Next i
End sub
接收端代码:
Private Sub Timer1_Timer(Index As Integer)
····
 Winsock1.GetData s
 s1 = Mid(s, InStr(s, "a") + 1, InStr(s, "b") - InStr(s, "a") - 1)
 s2 = Mid(s, InStr(s, "b") + 1, InStr(s, "c") - InStr(s, "b") - 1)
 Picture1(0).PSet (s1, s2), vbRed
····
End sub
图1是发送端的,图二是接收端的,为什么接收端的点都在同一横坐标上???
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


[ 本帖最后由 小篮子 于 2013-3-6 11:20 编辑 ]
3 回复
#2
Artless2013-03-06 13:51
为什么用Timer?
#3
小篮子2013-03-06 14:33
回复 2楼 Artless
因为要连续发送出去,不对吗?
#4
lowxiong2013-03-06 23:42
接受端可不需要使用timer,因为winsocket控件会有dataarrival事件,有数据到来时,就会触发该事件。
目前从你的mid算法看没什么问题,可能还是winsocket发送和接受的问题,我以前使用该控件碰到过丢包和阻塞的情况,想了很多办法解决。再就是发送的字符串在接收端表明下是字符串模式,确保接受数据正确,方法是Winsock1.GetData s,vbString。
1