以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]TCP通讯的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145157)

--  作者:zhouly619
--  发布时间:2020/1/9 23:32:00
--  [求助]TCP通讯的问题
这个通讯的例子中有一个bug,如果在建立通讯以后网线被拔掉,程序就会闪退。

但是如果我先退出通讯,再拔出网线就不会闪退。

请问各位老师改怎么来规避这个问题,用户在使用过程中是有可能突然断开或拔掉网线的。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:tcp通讯测试.foxdb



--  作者:有点蓝
--  发布时间:2020/1/10 9:51:00
--  
    Private Sub ReceiveMsg()
        Try
        While True
            Dim packet As Byte() = New Byte(1024) {}
            nStream.Read(packet, 0, packet.Length)
            Dim str As String = Encoding.Default.GetString(packet)
            Dim txt = forms("窗口1").Controls("TextBox2")
            txt.Text = str
            \'txt.Text &= iif(txt.text > "", vbcrlf, "") & str
        End While
        Catch ex As Exception
            MsgBox(ex.message)
        End Try
    End Sub

--  作者:zhouly619
--  发布时间:2020/1/10 11:35:00
--  
Dim client = vars("client1")

另外代码中的这种用法也是正确的吗?不需要定义数据类型吗?

--  作者:有点蓝
--  发布时间:2020/1/10 11:47:00
--  
可以不写数据类型,很多语言都有这个特性,叫类型推论,根据值反推类型。
--  作者:zhouly619
--  发布时间:2020/1/10 12:40:00
--  
谢谢有点蓝老师
--  作者:zhouly619
--  发布时间:2020/1/15 3:30:00
--  
在全局代码里 

Try
    tcp.Connect(ip, port)
Catch generatedExceptionName As Exception
    tcp = Nothing
End Try

这一段其中 如果IP地址或者端口号不对,或者网络不通的时候,程序会卡主20s左右,这个时间能设置短一点吗?

--  作者:有点蓝
--  发布时间:2020/1/15 9:06:00
--  
设置不了