找回密码
 加入
搜索
查看: 3056|回复: 7

tcp发送接收问题

  [复制链接]
发表于 2009-12-30 16:57:48 | 显示全部楼层 |阅读模式
本帖最后由 jyjuse 于 2010-1-1 15:00 编辑

tcp发送端连续发送时,接收端收到的数据会出现发送的第一条跟第二条连在一起的问题.必须让发送端等待一段时间,再发送第二条,接收端才正确分别是第一条还是第二条,有什么办法不用等待,直接发送就能到记录正确分条.听说可以监听队列不知道怎么实现,请高手指点.
发表于 2009-12-30 18:02:27 | 显示全部楼层
上源码
发表于 2009-12-30 20:02:29 | 显示全部楼层
tcp发送端连续发送时,接收端收到的数据会出现发送的第一条跟第二条连在一起的问题.必须让发送端等待一段时间 ...
jyjuse 发表于 2009-12-30 16:57


第一条跟第二条连在一起?
TCP发送是发送完一条再发送另一条的,怎么会连在一起,没弄明白LZ的意思
 楼主| 发表于 2009-12-30 22:25:28 | 显示全部楼层
我是用一个变量接收内容,结果得到的是这样的效果,
$A="A",$B="B"
收到的是AB不是
A
B
这样的结果.不知道说明白没有.
发表于 2009-12-30 23:47:51 | 显示全部楼层
我写了一段代码,测试没你说的那个问题

发送端:
dim $atemp [4]
For $i=0 To 2
        $atemp[$i] = string($i+1)
Next
$atemp[3] = "end"
TCPStartup ()

If @error = -1 Then Exit
For $i=0 To 3
        $socket = TCPConnect (@IPAddress1,65431)
        $send = TCPSend ($socket,$atemp[$i])
Next
TCPCloseSocket ($socket)
TCPShutdown ()

$temp = ""
For $i=0 To 3
        $temp &= $atemp [$i]&@CRLF
Next
MsgBox (0,"发送端",$temp)
循环连续发送4个数组元素

接收端:
Dim $atemp [4]
For $i=0 to 3
        $atemp [$i] = 0
Next
TCPStartup ()
$socket = TCPListen (@IPAddress1,65431)
If @error = -1 Then Exit
$i=0
While 1
        $connect = TCPAccept($socket)
        $data = TCPRecv ($connect,1024)
        ToolTip ($data&@crlf&$i)
        If $data Then
                $atemp[$i] = String($data)
                $i += 1
                If $data == "end" Then ExitLoop
        EndIf
WEnd
TCPCloseSocket ($socket)
TCPShutdown ()
$temp = ""
For $i=0 To 3
        $temp &= $atemp [$i]&@CRLF
Next
MsgBox (0,"接收端",$temp)

显示是正常的,并没有连在一起

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-1-1 15:00:31 | 显示全部楼层
问题已经解决,说下原理不发原码了.
发送端在发送一条之后进入一个等待循环,等待接收端接之后发送回一个字符,什么字符都可以.收到这个字符之后再发送下一条.这样就快了很多.而且不会出现连接在一起的问题.
发表于 2010-1-13 18:23:41 | 显示全部楼层
确实有这个问题的。
发表于 2014-3-14 14:47:44 | 显示全部楼层
TCP发送接收
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 03:30 , Processed in 0.084472 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表