我正在尝试构建一个客户端/服务器程序,以根据客户端输入传输某些方程的结果。我可以使用127.0.0.1让它无问题,但是因为我想将它发送给客户端,所以我无法使用它。并非所有客户端都在LAN上,并且将通过WAN进行传输。这是我的代码的信息
IPHostEntry ipHostInfo = Dns.GetHostEntry("127.0.0.1");
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 11000);
// Create a TCP/IP socket.
Socket client = new Socket(ipAddress.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);
我已经尝试过使用外部IPV4地址但是甚至无法对其进行ping操作,但我可以ping IPV6地址,而宁愿使用它。但是,当我输入我的IPV4地址时,程序根本无法连接。有什么建议吗?
EDIT 好的,所以我设法通过两台不同的局域网计算机连接它们,但是在发送一到两次局域网客户端给我这个
套接字连接到192.168.1.6:11000 System.Net.Sockets.SocketException(0X80004005):发送或的请求 因为套接字未连接而且不允许接收数据 (当使用sendto调用发送数据报套接字时)没有地址 在System.Net.Sockets.Socket.BeginSend(Byte []缓冲区,int32提供 offset,int32 size,Socket Flags socketFlags,AsyncCallback回调, 对象状态)在ConsoleApp1.Form1.Send(套接字客户端,字符串数据) 在(FileLocation)第111行的ConsoleApp1.Foorm1.button1_Click(对象 发送者,EventArgs e)在(FileLocation)第177行
答案 0 :(得分:0)
您可以使用IPAddress.Any
// Create a TCP/IP socket.
var client = new Socket(IPAddress.Any.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
client.Bind(new IPEndPoint(IPAddress.Any, 11000));