2013-01-18 50 views
1
**Server Code** 

Dim serverSocket As Socket 
Dim clientSocket As Socket 
Dim PubIP as String = "82.XX.XX.XX" 
Dim LocalIP as String = "192.XX.XX.XX" 

Dim byteData(1023) As Byte 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim host As String = Dns.GetHostName 
    Dim ip As IPHostEntry = Dns.GetHostEntry(host) 
    serverSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 
    Dim IpEndPoint As IPEndPoint = New IPEndPoint(System.Net.IPAddress.Parse(PubIP), 8080) 
    Me.Text = IpEndPoint.ToString 
    serverSocket.Bind(IpEndPoint) 'it can't bind public ip but i need public ip to run the client from other pc and connect to server for chating. 
    serverSocket.Listen(5) 
    serverSocket.BeginAccept(New AsyncCallback(AddressOf OnAccept), Nothing) 
End Sub 

**Client Code** 

Dim clientSocket As Socket 
Dim byteData(1023) As Byte 

Dim PubIP as String = "82.XX.XX.XX" 
Dim LocalIP as String = "192.XX.XX.XX" 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    clientSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 
    Dim ipAddress As IPAddress = ipAddress.Parse(PubIP) 
    Dim ipEndPoint As IPEndPoint = New IPEndPoint(ipAddress, 8080) 
    clientSocket.BeginConnect(ipEndPoint, New AsyncCallback(AddressOf OnConnect), Nothing) 
End Sub 

当我与localip运行服务器,它运行良好,我只能连接客户端从我的电脑只(服务器运行)。如果我尝试从另一台计算机运行客户端,它将不会连接到服务器。套接字客户端和服务器不工作

所以我分配公共IP,但是当我运行该程序时,Visual Studio显示此错误:请求的地址在其上下文中无效。

所以我卡在这里。我只能连接客户端,如果从我的电脑运行,但我需要连接客户端从我的朋友电脑到我的电脑我的服务器。

欢迎任何替代方式。

回答

相关问题