如何为socket配置我的服务器

时间:2012-07-25 12:25:26

标签: c#

在本地计算机上,此代码可以正常工作,但当我用于其他计算机时,它无效。

 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如何配置位于其他地方?

2 个答案:

答案 0 :(得分:0)

只需听取IPAddress.Any IP,因此服务器将按字面意义侦听任何已分配的地址。这将允许您从任何网络连接。

如果您只想让在同一台计算机上运行的程序能够连接,请使用IPAddress.Loopback,这将使您的套接字监听127.0.0.1

答案 1 :(得分:0)

使用IPAddress.Any可能会让您面临各种安全风险,因为您将收听计算机上的所有NIC卡,包括互联网和网络卡。内联网一。而是使用IPAddress.Loopback为您的主LAN NIC卡。或者,将所需NIC卡的IP地址存储在数据库或配置文件中。