16,554
社区成员
发帖
与我相关
我的任务
分享
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports Microsoft.VisualBasic
Public Class Form1
Dim s As Socket = Nothing
Dim t As Thread
Public Sub WaitData()
s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) '使用TCP协议
Dim localEndPoint As New IPEndPoint(IPAddress.Parse("192.168.1.12"), 1024) ' 指定IP和Port
s.Bind(localEndPoint) ' 绑定到该Socket
s.Listen(100) ' 侦听,考试#大提示最多接受100个连接
While (True)
Dim bytes(1024) As Byte ' 用来存储接收到的字节
Dim ss As Socket = s.Accept() '若接收到,则创建一个新的Socket与之连接
ss.Receive(bytes) ' 接收数据,若用ss.send(Byte()),则发送数据
'Dim Send_bytes() As Byte = {"1", "3"} ' 用来存储接收到的字节
'ss.Send(Send_bytes(0))
Call ShowinListBox(Encoding.Unicode.GetString(bytes), ListBox1)
'若使用Encoding.ASCII.GetString(bytes),则接收到的中文字符不能正常显示
End While
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
t = New Thread(AddressOf WaitData) '建立新的线程
t.Start() '启动线程
Button1.Enabled = False '按钮不可用,避免另启线程
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
s.Close() '关闭Socket
t.Abort() '中止线程
Catch
Finally
Button1.Enabled = True '启用BtnStart
End Try
End Sub
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
Try
s.Close() '关闭Socket
t.Abort() '中止线程
Catch
Finally
Button1.Enabled = True '启用BtnStart
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Public Class Form1
Private s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button_Open_Click(sender As Object, e As EventArgs) Handles Button_Open.Click
Try
Dim localEndPoint As New IPEndPoint(IPAddress.Parse(Me.TextBox_Server_IP.Text), Me.TextBox_Server_Port.Text)
s.Connect(localEndPoint)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim Gsz_bytes() As Byte
' Gsz_bytes = Encoding.Unicode.GetBytes(TextBox_Send.Text)
' Gsz_bytes = Encoding.UTF8.GetBytes(TextBox_Send.Text) '这是可以的
Gsz_bytes = System.Text.Encoding.ASCII.GetBytes(TextBox_Send.Text)
s.Send(Gsz_bytes)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub Button_Close_Click(sender As Object, e As EventArgs) Handles Button_Close.Click
Try
s.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class