Listener = New TcpListener(System.Net.IPAddress.Parse( " 192.200.0.100 " ), " 10200 " )
Listener.Start()
Label1.Text = " 正在 192.200.0.100:10200 处侦听.. "
Listener.Start()
Label1.Text = " 正在 192.200.0.100:10200 处侦听.. "
Private Sub Button3_Click( ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
Me .Close()
End Sub
Handles Button3.Click
Me .Close()
End Sub
‘创建TcpClient对象的实例
Client = New TcpClient
‘通过计算机名称和端口号连接到指定的计算机
Client.Connect(“ 192.200 . 0.100 ”, 10200 )
SendData = ”由PPC传递过来的数据 – Author:Risen”
‘按一定的编码规则对要传递的数据进行编码
Buffer = Encoding.UTF8.GetBytes(SendData)
‘向已连接的服务程序发送数据
Client.GetStream().Write(Buffer, 0 , Buffer.Length)
‘DataAvailable 指示NetworkStream 上是否有可用的数据。如果可以在流上读取数据,则为 true ;
‘否则为 false ,只要有数据存在就等待传输完毕
While Not Client.GetStream.DataAvailable()
Application.DoEvents()
End While
‘接收由服务程序传递回客户端的数据并显示在对话框上
If Client.GetStream.DataAvailable() Then
Client.GetStream().Read(InBuff, 0 , InBuff.Length)
rtndata = " 服务程序已经成功收到指令,在 " & System.Text.Encoding.Default.GetString(InBuff, 0 , InBuff.Length)
MsgBox (rtndata)
End If
‘断开连接、关闭对象并释放与 TcpClient 关联的所有资源
Client.Close()
Client = New TcpClient
‘通过计算机名称和端口号连接到指定的计算机
Client.Connect(“ 192.200 . 0.100 ”, 10200 )
SendData = ”由PPC传递过来的数据 – Author:Risen”
‘按一定的编码规则对要传递的数据进行编码
Buffer = Encoding.UTF8.GetBytes(SendData)
‘向已连接的服务程序发送数据
Client.GetStream().Write(Buffer, 0 , Buffer.Length)
‘DataAvailable 指示NetworkStream 上是否有可用的数据。如果可以在流上读取数据,则为 true ;
‘否则为 false ,只要有数据存在就等待传输完毕
While Not Client.GetStream.DataAvailable()
Application.DoEvents()
End While
‘接收由服务程序传递回客户端的数据并显示在对话框上
If Client.GetStream.DataAvailable() Then
Client.GetStream().Read(InBuff, 0 , InBuff.Length)
rtndata = " 服务程序已经成功收到指令,在 " & System.Text.Encoding.Default.GetString(InBuff, 0 , InBuff.Length)
MsgBox (rtndata)
End If
‘断开连接、关闭对象并释放与 TcpClient 关联的所有资源
Client.Close()
Imports System.Net.Sockets ‘ <- 添加需要导入的命名空间
Imports System.Text ‘ <- 添加需要导入的命名空间
Public Class Form
Imports System.Text ‘ <- 添加需要导入的命名空间
Public Class Form
‘创建在本机IP地址和端口侦听的TcpListener对象的实例
Listener = New TcpListener(“ 192.200 . 0.100 ”, 10200 )
' 开始侦听
Listener.Start()
‘侦听状态标志
Listening = True
Label1.Text = " 正在 192.200.0.100:10200 处侦听.. "
Listener = New TcpListener(“ 192.200 . 0.100 ”, 10200 )
' 开始侦听
Listener.Start()
‘侦听状态标志
Listening = True
Label1.Text = " 正在 192.200.0.100:10200 处侦听.. "
' 声明创建线程时,使用 ThreadStart 委托作为其唯一参数的构造函数创建 Thread 类的新实例
Dim CurThreadStart As ThreadStart
Dim CurThread As Thread
' 检测侦听器是否有挂起的连接请求,没有则退出计时器事件
If Not Listener.Pending() Then
Exit Sub
End If
' 有连接的请求则将计时器暂停,准备进行处理
tmProcessRequest.Enabled = False
' 创建线程委托,传递需要操作的过程的地址
CurThreadStart = New ThreadStart( AddressOf ProcessRequest)
CurThread = New Thread(CurThreadStart)
' 开始一个线程
CurThread.Start()
' 重新启动计时器
tmProcessRequest.Enabled = True
Dim CurThreadStart As ThreadStart
Dim CurThread As Thread
' 检测侦听器是否有挂起的连接请求,没有则退出计时器事件
If Not Listener.Pending() Then
Exit Sub
End If
' 有连接的请求则将计时器暂停,准备进行处理
tmProcessRequest.Enabled = False
' 创建线程委托,传递需要操作的过程的地址
CurThreadStart = New ThreadStart( AddressOf ProcessRequest)
CurThread = New Thread(CurThreadStart)
' 开始一个线程
CurThread.Start()
' 重新启动计时器
tmProcessRequest.Enabled = True
CurThread = System.Threading.Thread.CurrentThread()
‘接受挂起的连接请求并返回可用来发送和接收数据的Socket
CurSocket = Listener.AcceptSocket
While Listening
If CurSocket.Available > 0 Then
‘接收来自绑定的Socket的数据
Bytes = CurSocket.Receive(Buffer, Buffer.Length, 0 )
‘将接收到的数据转化成相应编码的字符串
ReceivedData = Encoding.UTF8.GetString(Buffer)
SyncLock CurThread
lbReceived.Items.Add(ReceivedData)
End SyncLock
‘接受挂起的连接请求并返回可用来发送和接收数据的Socket
CurSocket = Listener.AcceptSocket
While Listening
If CurSocket.Available > 0 Then
‘接收来自绑定的Socket的数据
Bytes = CurSocket.Receive(Buffer, Buffer.Length, 0 )
‘将接收到的数据转化成相应编码的字符串
ReceivedData = Encoding.UTF8.GetString(Buffer)
SyncLock CurThread
lbReceived.Items.Add(ReceivedData)
End SyncLock
' 格式化返回消息 - 这是服务器端处理后的结果并返回到客户端。
BacktoClientData = System.DateTime.Now ‘向客户端传递服务端程序处理时的时间
Buffer = Encoding.UTF8.GetBytes(BacktoClientData.ToCharArray)
' 通过打开的套接字将结果发送回客户端应用程序,然后关闭该套接字。
CurSocket.Send(Buffer, Buffer.Length, 0 )
CurSocket.Close()
BacktoClientData = System.DateTime.Now ‘向客户端传递服务端程序处理时的时间
Buffer = Encoding.UTF8.GetBytes(BacktoClientData.ToCharArray)
' 通过打开的套接字将结果发送回客户端应用程序,然后关闭该套接字。
CurSocket.Send(Buffer, Buffer.Length, 0 )
CurSocket.Close()