C# 如何为套接字配置我的服务器

C# 如何为套接字配置我的服务器,c#,C#,在本地机器上,此代码可以工作,但当我在其他机器上使用时,它不工作 socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); PEndPoint localendpoint = new IPEndPoint(IPAddress.Parse("192.168.0.102"), 6001); try {socket.Connect(loc

在本地机器上,此代码可以工作,但当我在其他机器上使用时,它不工作

 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();
实际我想配置其他机器,我使用了difrent IP的相同代码,但没有找到。其他机器IP为192.168.0.102如何配置位于其他位置的IP?

只需在IP上侦听,服务器将侦听对其分配的任何地址的请求。这将允许您从任何网络连接


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

。任何可能会使您面临各种安全风险,因为您将监听计算机上的所有NIC卡,包括internet和intranet。相反,请使用主LAN NIC卡的IPAddress.Loopback。或者,将所需NIC卡的ip地址存储在数据库或配置文件中。

您的服务器可以在127.0.0.1或LocalHost上侦听。我想使用其他计算机,因此无法使用此计算机。我的另一台机器IP是192.168.0.102。IPAddress.Loopback不侦听任何NIC,它侦听虚拟环回适配器,即
127.0.0.1
。如果这就是OP想要做的(即:永远不要让除
localhost
connect之外的任何人连接),那么就没关系了。将IP存储在配置中不是一个好建议,它可能会随着每次重新启动而改变。有多种方法可以从当前计算机上的所有NIC请求所有分配的IP。@CodeCaster-假设我的本地计算机上有多个NIC卡(连接到多个网络),并且我想在我选择的特定NIC上侦听,那么配置文件可能是唯一的选项。还有什么其他方法呢?简单地说你可以在配置文件中存储一些东西永远都不是答案。你打算让你的用户输入他们自己的IP地址吗?
System.Net
中有各种API调用,允许您枚举系统中的所有适配器以及分配给这些适配器的所有地址。@user1551503“不工作”不是错误消息。用实际代码、异常和堆栈跟踪更新您的问题。请检查并告诉我更多想法,我想完成我的项目,@user1551503我仍然不明白为什么“不起作用”。运行代码时有任何异常吗?只是无法连接到服务器。。另一端的服务器应用程序正在正常运行。服务器应用程序正在破坏我的笔记本电脑,该笔记本电脑与其他路由器连接。我的Clint程序在我的计算机上,和其他路由器一起,然后是服务器。两者都通过不同的路由器连接。