目标是windows和linux之间的vb.net连接。在Linux上使用VB.net进行Windows TCP套接字连接
windows-server(vb.net):服务器应该在端口4001/tcp上监听连接,并对数据包执行一些操作。
Dim serverstream As NetworkStream
Dim serverstreamw As StreamWriter
Dim serverstreamr As StreamReader
Dim Server As TcpListener
Dim serverclient As New TcpClient
Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 4001)
Dim mainthread As Threading.Thread
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
mainthread = New Threading.Thread(AddressOf mainserver)
mainthread.Start()
End Sub
Sub mainserver()
Try
Server = New TcpListener(ipendpoint)
Server.Start()
serverclient = Server.AcceptTcpClient
serverstream = serverclient.GetStream
serverstreamr = New StreamReader(serverstream)
serverstreamw = New StreamWriter(serverstream)
While True
Select Case serverstreamr.ReadLine
Case "onl" '........
Case "logoff" '........
Case "iamhere" '........
MessageBox.Show("WORKS!!!")
End Select
End While
Catch
End Try
End Sub
Linux的客户端:客户端应该创建与服务器的连接并发送数据包他。
echo "iamhere" > /dev/tcp/client.ip/4001
的问题是,它似乎像服务器不开端口4001/TCP。客户端没有连接:/
如何解决这个问题?
您是通过局域网还是通过互联网连接?如果是后者,则必须在路由器中转发端口4001。此外,我没有看到你指定什么IP连接_ **到** _在Linux上。 –
互联网。除了转发之外,没有别的办法吗?如何游戏处理这个? U不要转发你的路由器中的每个端口:) – realKSMC
'IPAddress.Any'表示监听所有连接,不是吗?所以它需要监听所有IP的各种客户端的bc :) – realKSMC