请教关于.NET Socket同步发送

spark_li 2015-11-26 07:37:32
一个小程序用到了system.net.sockets
socket创建连接后,先send,然后receive
再send,再receive没有问题

现在想改成两个线程来执行任务,一个线程负责send,
一个负责receive

哪位高手能给个demo呀,谢谢了。
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
客户端程序访问服务器,本来就可以是
send
receive
.......
send
receive
的顺序处理。你改为“脑裂”的两个线程,有什么必要画蛇添足呢?
  • 打赏
  • 举报
回复
以 #2 楼的代码为例,他只写了一次 send 的代码。假设按照你的描述,有2次或者2次以上send操作,那么你send之后就要等待receive之后,才开始下一次send,然后等待第2次receive之后才开始第3次send。那个代码中并没有这个设计! 实际上,真要是设计出来了,看明白代码也发现画蛇添足。
  • 打赏
  • 举报
回复
引用 楼主 spark_li 的回复:
一个小程序用到了system.net.sockets socket创建连接后,先send,然后receive 再send,再receive没有问题 现在想改成两个线程来执行任务,一个线程负责send, 一个负责receive 哪位高手能给个demo呀,谢谢了。
没有必要修改。
qq_33789946 2016-01-19
  • 打赏
  • 举报
回复

 Dim S As Socket
    Dim thrRecv As Threading.Thread

    Private Sub Recv()
        Do
            Dim b(1023) As Byte
            S.Receive(b)
            BeginInvoke(Sub()
                            'UI线程的代码
                        End Sub)
        Loop
    End Sub

    Private Sub Send(ByVal data() As Byte)
        S.Send(data)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        thrRecv = New Threading.Thread(AddressOf Recv)
        thrRecv.Start()

        Send(New Byte() {1, 2, 3, 4})
    End Sub
caoqinghua 2015-11-26
  • 打赏
  • 举报
回复
http://www.codeproject.com/search.aspx?q=socket+vb.net&doctypeid=1%3b2%3b3%3b13%3b14&pgsz=10

16,554

社区成员

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

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