Foxtable(狐表)用户栏目专家坐堂 → 这段Sockets代码在狐表怎么执行,需要引入什么


  共有646人关注过本帖树形打印复制链接

主题:这段Sockets代码在狐表怎么执行,需要引入什么

帅哥哟,离线,有人找我吗?
zhenghangbo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:473 积分:4526 威望:0 精华:0 注册:2018/2/7 14:30:00
这段Sockets代码在狐表怎么执行,需要引入什么  发帖心情 Post By:2024/8/8 16:07:00 [只看该作者]

Imports System.Net.Sockets
Imports System.Text

Public Class TCPClientExample
    Private client As TcpClient
    Private stream As NetworkStream

    Public Sub New()
        client = New TcpClient()
        stream = Nothing
    End Sub

    Public Sub Connect(host As String, port As Integer)
        Try
            client.Connect(host, port)
            stream = client.GetStream()
            Console.WriteLine("Connected to server.")
            ReceiveData() ' 开始接收数据
        Catch ex As Exception
            Console.WriteLine("Connection failed: " & ex.Message)
        End Try
    End Sub

    Private Async Sub ReceiveData()
        Dim buffer(1024) As Byte
        Dim received As Integer

        While True
            Try
                received = Await stream.ReadAsync(buffer, 0, buffer.Length)
                Dim data As String = Encoding.UTF8.GetString(buffer, 0, received)
                Console.WriteLine("Received from server: " & data)
            Catch ex As Exception
                Console.WriteLine("Receive failed: " & ex.Message)
                Exit While
            End Try
        End While
    End Sub

    Public Sub SendData(message As String)
        If stream IsNot Nothing Then
            Dim data As Byte() = Encoding.UTF8.GetBytes(message)
            Try
                stream.Write(data, 0, data.Length)
                Console.WriteLine("Sent to server: " & message)
            Catch ex As Exception
                Console.WriteLine("Send failed: " & ex.Message)
            End Try
        Else
            Console.WriteLine("Not connected to server.")
        End If
    End Sub

    Public Sub Disconnect()
        If stream IsNot Nothing Then
            stream.Close()
        End If
        If client IsNot Nothing Then
            client.Close()
        End If
    End Sub
End Class

Module Program
    Sub Main(args As String())
        Dim client As New TCPClientExample()

        client.Connect("localhost", 12345) ' 请替换为实际的服务端地址和端口号

        Console.WriteLine("Press Enter to send a message...")
        While Not Console.KeyAvailable
            If Console.KeyAvailable Then
                Dim input As String = Console.ReadLine()
                client.SendData(input)
            End If
        End While

        client.Disconnect()
        Console.WriteLine("Disconnected.")
        Console.ReadKey()
    End Sub
End Module
[此贴子已经被作者于2024/8/8 16:16:21编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/8 16:24:00 [只看该作者]

不需要引用什么,把class里面的内容放到全局代码,然后代码里写全命名空间即可,

比如
Private client As TcpClient
改为
Private client As System.Net.Sockets.TcpClient

 回到顶部
帅哥哟,离线,有人找我吗?
zhenghangbo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:473 积分:4526 威望:0 精华:0 注册:2018/2/7 14:30:00
  发帖心情 Post By:2024/8/8 16:36:00 [只看该作者]

出错了,未定义类型“NetworkStream”

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/8 16:48:00 [只看该作者]

看2楼,写全完整的命名空间啊。2楼只是举例,不是全部的,剩下的自己改

 回到顶部
帅哥哟,离线,有人找我吗?
zhenghangbo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:473 积分:4526 威望:0 精华:0 注册:2018/2/7 14:30:00
  发帖心情 Post By:2024/8/9 9:03:00 [只看该作者]

Console.WriteLine("Press Enter to send a message...")
        While Not Console.KeyAvailable
            If Console.KeyAvailable Then
                Dim input As String = Console.ReadLine()
                client.SendData(input)
            End If
        End While
这里的Console.WriteLine与 Console.KeyAvailable是什么?

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/9 9:17:00 [只看该作者]

这个是获取控制台的输入,Foxtable改为使用窗口的文本框获取

        Dim client As New TCPClientExample()

        client.Connect("localhost", 12345) ' 请替换为实际的服务端地址和端口号
client.SendData(e.form.controls("文本框1").text)
client.Disconnect()
[此贴子已经被作者于2024/8/9 9:44:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zhenghangbo
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:473 积分:4526 威望:0 精华:0 注册:2018/2/7 14:30:00
  发帖心情 Post By:2024/8/9 9:29:00 [只看该作者]

那这段语句又得怎么改?
While Not Console.KeyAvailable
            If Console.KeyAvailable Then
                Dim input As String = Console.ReadLine()
                client.SendData(input)
            End If
        End Whil

 回到顶部
帅哥哟,离线,有人找我吗?
zhenghangbo
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:473 积分:4526 威望:0 精华:0 注册:2018/2/7 14:30:00
  发帖心情 Post By:2024/8/9 9:36:00 [只看该作者]

那我写在全局代码里面的那段代码也得要修改

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109474 积分:557032 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/9 9:44:00 [只看该作者]

Module Program里面的内容全部不要,把6楼代码放到窗口按钮里

 回到顶部