什么是socket?socket翻译为套接字,是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。
socket抽象层在网络中的位置图解:
因此,只要知道如何使用相应的接口,就能够实现两个进程间的通信。
socket通信流程:
用代码方式实现
服务端:
'获得服务器ip地址和端口
Dim serverIpAdress As IPAddress = IPAddress.Parse(ipAddressText.Text)
Dim serverPort As Integer = Integer.Parse(portText.Text)
'将IP地址和端口号绑定到网络节点point上
Dim serverPoint As IPEndPoint = New IPEndPoint(serverIpAdress, serverPort)
'创建服务器socket
serverSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
'绑定节点
serverSocket.Bind(serverPoint)
'设置监听队列最大个数
serverSocket.Listen(10)
'创建监听线程
listener = New Thread(AddressOf Listen)
'将窗体线程设置为与后台同步,随着主线程结束而结束
listener.IsBackground = True
'启动线程
listener.Start()
Listen方法
'监听线程
Public Sub Listen()
'连接socket
Dim mySocket As Socket = Nothing
'不断监听接收请求连接
While True
Try
mySocket = serverSocket.Accept()
Catch ex As Exception
'提示套接字监听异常
BeginInvoke(New EventHandler(AddressOf AddInfo), ex.Message)
End Try
'可在此处做相关逻辑处理
'创建通信线程
Dim conThread As Thread = New Thread