Socket 接收大量数据的问题,应该如何修改呢

lucifercxw 2019-12-27 12:24:55
少量数据接受没有问题,但是要发送的数据再 几万字符,应该如何修改呢.
For Each mo As System.Management.ManagementObject In moc2
If mo("IPEnabled") Then
netid = mo("MACAddress")
ip = mo("IpAddress")(0)
Exit For
End If
Next
Try
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) '使用TCP协议
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(ip), 8000) ' 指定IP和Port
s.Bind(localEndPoint) ' 绑定到该Socket
s.Listen(200) ' 侦听,考试#大提示最多接受100个连接
While (True)

Dim bytes(1024) As Byte ' 用来存储接收到的字节
Dim ss As Socket = s.Accept() '若接收到,则创建一个新的Socket与之连接
ss.Receive(bytes) ' 接收数据,若用ss.send(Byte()),则发送数据
Dim sMessage As String = Encoding.Unicode.GetString(bytes)
'若使用Encoding.ASCII.GetString(bytes),则接收到的中文字符不能正常显示
Dim sTime As String = DateTime.Now.ToShortTimeString()
...全文
874 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbhuo2008 2020-03-29
  • 打赏
  • 举报
回复
ss.Receive(bytes)

改用 ss.Receive(bytes, bytes.Length, 0)试试
良朋 2020-02-29
  • 打赏
  • 举报
回复
考虑的太多了.........
FainSheeg 2020-02-29
  • 打赏
  • 举报
回复
要自己定义协议,一般是在包头带上包长度,接收到指定长度的数据才是一个完整的包。或者指定包的起始符和结束符,遇到起始符开始算一个包一直到收到结束符
FainSheeg 2019-12-27
  • 打赏
  • 举报
回复
很明显,上万个字符后数据被分包了,你一次接收到的数据不是一个完整的包,需要做合并处理
lucifercxw 2019-12-27
  • 打赏
  • 举报
回复
请问有例子吗

16,722

社区成员

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

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