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

问题描述

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

解决方案

没人帮忙吗,自己顶一个

解决方案二:

这么多人浏览了,就没有说说问题。

解决方案三:

这不是VB6,是VB.NET

解决方案四:

是的vb.net ,赵4老师

解决方案五:

老师,vb编程中调用BeginAcceptTcpClient的异步操作出现,还有
我使用按钮触发关闭连接状态的,可是 listener.Stop() 不知道写到那个地方关闭侦听

解决方案六:

大家看了,可以说说有什么很严重的问题也是好事啊,谢谢

解决方案七:

大家好,这里问题是函数调用太多了吗
While True

    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
    receiveBytes = System.Text.Encoding.ASCII.GetBytes(data)
    TextBox1.Text = data  //这里显示接受的数据,怎么没有看到??
    ' If InStr(1, Encoding.ASCII.GetString(receiveBytes), KeyWord) <> 0 Then
    'Me.BeginInvoke(New System.EventHandler(AddressOf TCP_Refresh), receiveBytes)
    ' End If
    'i = stream.Read(bytes, 0, bytes.Length)

End While
    还是这个循环有问题

解决方案八:

这次的工作中碰到的问题,基本可以实现我想的要求,还有很大的改进,没有人给过我希望,难道是我没有把问题没说明白吗,还是对于这么简单的问题就不屑一顾。很是疑惑,对于我这样的新手

解决方案九:

请参考MSDN里面自带的相关VB.net例子代码。

解决方案十:

谢谢老师,这里有个疑问
提示:Stop 方法并不会关闭任何已接受的连接。并且你应该负责关闭这些连接,可是多个客户端的连接,怎么关闭每个连接呢???

时间: 2024-10-05 18:55:48

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

VB编程中钩子的实现及应用

编程 前言 Windows系统中钩子具有相当强大的功能,通过这种技术可以对几乎所有的Windows 系统中的消息进行拦截.监视.处理.这种技术可以广泛应用于各种软件,尤其是需要有监控.自动记录等对系统进行监测功能的软件.本文针对这个专题进行了探讨,希望可以为读者朋友们起到抛砖引玉的作用. 一.钩子的机制及类型 Windows的应用程序都是基于消息驱动的,应用程序的操作都依赖于它所得到的消息的类型及内容.钩子与Dos中断截获处理机制有类似之处.钩子(Hook)是Windows消息处理机制的一个平台

VB编程的好帮手--资源文件

各位VB高手,你一定也常常因苦于无法组织自己程序中大量的picture,而头痛不已,那就让小生为各位介绍一下VB编程的好帮手--资源文件. 所谓资源文件,就是指将在程序运行时用到的资源集中在一起的一个文件.一个资源文件可以包括文字(TEXT).位图(BITMAP).图标(ICON)等.并且在程序中调用时不用指明路径,这就简化了程序的编写并减少了发生错误的可能.现在我就以一个小程序为例讲述资源文件的一些使用方法. 这个工程运行后,当点击[未来]按钮时中间图像将依次变换为夏.秋.冬.春--点击[从前

VB编程步步高-杂类篇

按照百分秒格式显示时间 你可以编写下面的代码来显示时间,其中包括百分秒格式: txt = Format$(Time, "hh:mm:ss") & Format$(Timer - Fix(Timer), ".00") 注意:Timer函数不能显示百分秒格式的时间,它只能精确到50毫秒. 简易安装注册表项目 这里有一个安装程序时设置注册表项目的简单方法.首先,在机器上手工创建一个项目,比尽可能地将之放在所属的子路径下面.然后,使用注册表编辑器输出这个包含项目的子

vb编程-如何实现从WMI动态获取CPU温度

问题描述 如何实现从WMI动态获取CPU温度 本人通过VB编程从WMI获取CPU温度,但却是静止不动的,有高手说是必须在某些系统信息发生改变时才会刷新数据.但打开SPEEDFAN温度检测后,WMI里的CPU温度数据却动态地刷新着.并且是准确地.所以在这请教高手解释这里面的原因. 附上VB代码 Private Sub Command1_Click() MsgBox "CPU 溫度 : " & CPU_Temperature & " °C" End Su

VB编程系统有没有对应ImageCombo的ImageListBox?

问题描述 VB编程系统有没有对应ImageCombo的ImageListBox? VB编程系统有没有对应ImageCombo的ImageListBox?怎么组合一个ImageListBox?

vb编程设计界面,编码实现附合导线方位角闭合差的计算与分配

问题描述 vb编程设计界面,编码实现附合导线方位角闭合差的计算与分配 用VB设计界面,编码实现附合导线方位角闭合差的计算与分配.各导线边方位角的计算与显示

VB编程 及EXCEL 的VBA编程,用什么把一段代码括起来啊(就是用什么东西来实现C语言中的{}功能啊)?

问题描述 VB编程及EXCEL的VBA编程,用什么把一段代码括起来啊(就是用什么东西来实现C语言中的{}功能啊)? 解决方案 解决方案二:不是有begin和end吗解决方案三:region?C的{}有很多啊,只能你VB书都没看过if...endif-------------if{}for...endfor---------for{}解决方案四:for..next.............我草解决方案五:学c的时候用按键精灵的时候我也愣了一阵子...很多是用end,if之后用endif,while

【vb编程】怎样把数据保存到excel中

问题描述 小弟不会vb编程,特求大神给个demo,在此感谢! 下面是我在网上找到的例子,运行报错: Dim ExcelApp As Object Private Sub Form_Unload(Cancel As Integer) Dim X As Integer X = MsgBox("是否保存更改?", vbYesNoCancel + vbExclamation, "VB 保存数据到中 Excel") If X = 6 Then '单击"是"

VB编程基础课教程_vb

VB编程基础课 什么是API API文本游览器  API函数声明 数据类型与"类型安全"  常 数 结 构  小 结 一些API函数集: 控件与消息函数.硬件与系统函数.菜单函数.绘图函数  什么是API   首先,有必要向大家讲一讲,什么是API.所谓API本来是为C和C++程序员写的.API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中.用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不