我有一些问题,如果不工作,我无法在家检查.这是代码
using System; using System.Net; using System.Net.Sockets; using System.Threading; using System.IO; using System.Net.Security; class Program { private static IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); private static int port = 6000; private static string data = null; static void Main(string[] args) { Thread thread = new Thread(new ThreadStart(receiveThread)); thread.Start(); Console.ReadKey(); } public static void receiveThread() { while (true) { TcpListener tcpListener = new TcpListener(ipAddress, port); tcpListener.Start(); Console.WriteLine("Waiting for connection..."); TcpClient tcpClient = tcpListener.AcceptTcpClient(); Console.WriteLine("Connected with {0}", tcpClient.Client.RemoteEndPoint); while (!(tcpClient.Client.Poll(20, SelectMode.SelectRead))) { NetworkStream networkStream = tcpClient.GetStream(); StreamReader streamReader = new StreamReader(networkStream); data = streamReader.ReadLine(); if(data != null) Console.WriteLine("Received message: {0}", data); } Console.WriteLine("Dissconnected...\n"); tcpListener.Stop(); } } }
我有一个简单的程序连接到这个,然后发送一个包含数据的字符串.它在localhost上工作正常,但是当我尝试连接另一台计算机时出现问题.
我甚至关闭了我的PC和路由器上的防火墙,就像我在朋友的笔记本电脑上做的那样.每次我尝试连接时,他的计算机都拒绝连接.也许我做错了什么?
当然,ipAddress
现在是一个本地地址,因为它目前仅与此有关.有什么建议吗?
你需要将它设置为接受来自任何IP的连接,有一个IPAddress重载函数:
System.Net.IPAddress.Any
使用它而不是127.0.0.1,它将解决您的问题.