TCPListener问题总是收到上一次的数据

ChumpKlutz 2008-09-10 01:44:16
代码如下:

intPort = 2008

myTcpListener = New TcpListener(intPort)

Dim blnConnection As Boolean = False

Try

myTcpListener.Start()
Dim mySocket As Socket = myTcpListener.AcceptSocket()



Do

If mySocket.Connected Then

lstInfo.Items.Add("Connection Success! ")

myNetWorkStream = New NetworkStream(mySocket)

Dim strContent As String
Dim strResult As String


Dim lngByte As Integer

While mySocket.Available > 0
lngByte = mySocket.Available


Dim myByte(lngByte) As Byte

'mySocket.Receive(myByte, lngByte, SocketFlags.None)

myNetWorkStream.Read(myByte, 0, lngByte)
strContent &= Encoding.UTF8.GetString(myByte, 0, lngByte)

strResult = ParseData(strContent)

Dim myByteSend As Byte() = Encoding.UTF8.GetBytes(strResult)

myNetWorkStream.Write(myByteSend, 0, myByteSend.Length)

myNetWorkStream.Flush()

'mySocket.Send(myByteSend, myByteSend.Length, SocketFlags.None)

End While

End If

Application.DoEvents()
Loop

Catch ex As Exception

lstInfo.Items.Add("Connection Failure! Reason:" & ex.Message)

End Try



问题如下:当第一次收到字符串"OK"后,第二次再收到字符串"YES"后收到的字符串是"OKYES"

也就是多次收到的内容都还在队列中
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oo渣渣oo 2008-09-11
  • 打赏
  • 举报
回复
strContent &= Encoding.UTF8.GetString(myByte, 0, lngByte)
程序没问题,都是你自己干滴!就是你自己在不断地在这个字符串后面添加!!
谁让你用&=的?
wdgphc 2008-09-10
  • 打赏
  • 举报
回复
首先建议不要用2008等这种小号做自己的监听端口.
其次,strContent &= Encoding.UTF8.GetString(myByte, 0, lngByte)
好像有点问题.
LQknife 2008-09-10
  • 打赏
  • 举报
回复
晓习 接分
yanlongwuhui 2008-09-10
  • 打赏
  • 举报
回复
这么快就自个解决了,看来楼主发帖前还没好好研究透
ChumpKlutz 2008-09-10
  • 打赏
  • 举报
回复
问题解决了
ChumpKlutz 2008-09-10
  • 打赏
  • 举报
回复
不是的,写回的网络流是另一个字符串
wood87654321 2008-09-10
  • 打赏
  • 举报
回复
中间这部分看得有点晕

strContent &= Encoding.UTF8.GetString(myByte, 0, lngByte)
strResult = ParseData(strContent)
Dim myByteSend As Byte() = Encoding.UTF8.GetBytes(strResult)
myNetWorkStream.Write(myByteSend, 0, myByteSend.Length)
myNetWorkStream.Flush()

难道你把收到的串又写回了网络流?那么再接收时同时得到它有什么奇怪的?

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧