在本地计算机上,此代码可以正常工作,但当我用于其他计算机时,它无效。
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
PEndPoint localendpoint = new IPEndPoint(IPAddress.Parse("192.168.0.102"), 6001);
try
{socket.Connect(localendpoint);}
catch
{
Console.Write("unable");
Main(args);
}
String sms = "i;want;send;data";
byte[] data = Encoding.ASCII.GetBytes(sms);
socket.Send(data);
Console.Read();
socket.Close(); }
我的服务器端:
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Parse("192.168.0.102"),6001));
socket.Listen(100);
Socket acepted = socket.Accept();
实际我想配置其他机器我使用相同的代码与不同的IP,但没有找到。其他机器IP是192.168.0.102如何配置位于其他地方?
答案 0 :(得分:0)
只需听取IPAddress.Any IP,因此服务器将按字面意义侦听任何已分配的地址。这将允许您从任何网络连接。
如果您只想让在同一台计算机上运行的程序能够连接,请使用IPAddress.Loopback
,这将使您的套接字监听127.0.0.1
。
答案 1 :(得分:0)
使用IPAddress.Any可能会让您面临各种安全风险,因为您将收听计算机上的所有NIC卡,包括互联网和网络卡。内联网一。而是使用IPAddress.Loopback为您的主LAN NIC卡。或者,将所需NIC卡的IP地址存储在数据库或配置文件中。