wangl0907 2016-04-06 07:10 采纳率: 0%
浏览 2961

vb编程 我使用的TCPListener和异步方法BeginAcceptTCPClient多个客户端 连接TCP服务器

Public Sub TCPlisten()

try

    Dim listener As New TcpListener(IPAddress.Any, Local_Port) 
    listener.Start()
    listener.BeginAcceptTcpClient(New AsyncCallback(AddressOf AcceptClient), listener) '异步操作

Public Sub AcceptClient(result As IAsyncResult)
try
Dim tempListener As TcpListener = CType(result.AsyncState, TcpListener)

    Dim client As TcpClient = tempListener.EndAcceptTcpClient(result)
    Dim bytes(1024) As Byte
    Dim data As String = Nothing
    Dim stream As NetworkStream = client.GetStream()
    Dim i As Int32

    i = stream.Read(bytes, 0, bytes.Length)
    listener.BeginAcceptTcpClient(AddressOf AcceptClient, listener)  //应该加在while循环前面吧
    While True     //这里的循环怎么写可以替换成异步通信
            data = System.Text.Encoding.ASCII.GetString(bytes, 0, i) '数字0表示从缓冲区的起始位置,
            receiveBytes = System.Text.Encoding.ASCII.GetBytes(data) '转换为字节数
            Me.BeginInvoke(New System.EventHandler(AddressOf TCP_Refresh), receiveBytes) //异步委托

            i = stream.Read(bytes, 0, bytes.Length)

    End While

            //这里有部分内容不懂,怎么处理网络流关闭???
    Catch ex As Exception
        listener.Stop()
        listener = Nothing
    End Try

End Sub

Public Sub TCPserver(sender As Object, e As EventArgs)
    Try
        Dim str As String = Nothing
        str = System.Text.Encoding.ASCII.GetString(sender)
        TextBox1.Text = str & vbCrLf & TextBox1.Text
    Catch ex As Exception
        MsgBox(e.ToString())
    End Try
    //这里的网络流关闭写在哪里啊??? 大家帮帮忙吧???
   ‘ stream.Close()

End Sub


现在问题是,只要客户端发送数据,服务器客户端可以接收数据,就是发送中间会出现没有反应???
发现断开连接时候会出现服务器端不会响应,怎么办???


特别是其中的异步TCP编程
看了这篇文章有了很大的认识
http://blog.csdn.net/jjjfox/article/details/8212271
  • 写回答

10条回答 默认 最新

  • wangl0907 2016-04-06 07:26
    关注

    没人帮忙吗,自己顶一个

    评论

报告相同问题?

悬赏问题

  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误