У меня есть какая-то проблема, и я не могу проверить это дома, если он работает или нет. Вот кодНе удается подключиться с удаленной машины
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();
}
}
}
У меня есть простая программа, а также для подключения к этому, а затем отправить строку с данными. Он отлично работает на локальном хосте, но есть проблема, когда я пытаюсь подключиться к другому коммутатору.
Я даже отключил брандмауэр на своем ПК и маршрутизаторе, как и на ноутбуке моего друга. Каждый раз, когда я пытался подключиться, его компьютер отказался от подключения. Может быть, я делаю что-то не так?
ipAddress
- это локальный адрес, потому что он работает с этим только сейчас. Любые предложения, что делать?
Говорят, что этот метод устарел. Я использовал localhost ip, так как Im прослушивал мой компьютер для входящего соединения. Я думаю, он должен работать так, как есть, или я ошибаюсь? – Allek
127001 - это только ваш компьютер от самого ПК. Вам нужно прослушивать внешне видимый IP-адрес, используя ответы IpDdress.Any. –