У меня есть приложение Winforms, которое собирается передавать данные в приложение Android, сейчас оно принимает соединение и отображает строку текста в качестве вывода. Я тестировал на своей локальной машине команду te lnet в PowerShell, и она возвращает правильное сообщение. Когда я попробовал команду из другого P C в моей сети, он просто отключился и не может подключиться. Я удостоверился, что порт был свободен и что мой брандмауэр был выключен.
Вот мой метод:
public void senddata()
{
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
TcpListener server = null;
try
{
Int32 port = 4296;
IPAddress localAddr =IPAddress.Any;
server = new TcpListener(localAddr, port);
server.Start();
Byte[] bytes = new Byte[256];
while (true)
{
server.Start();
Debug.WriteLine("Waiting for a connection... ");
TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
Debug.WriteLine("Connected!");
server.Stop();
while (stream.Read(bytes, 0, bytes.Length) != 0)
{
string data = "CPU: " + cpuCircle.Value + " C" + " | GPU: " + gpuCircle.Value + " C";
byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
stream.Write(msg, 0, msg.Length);
stream.Flush();
}
client.Close();
}
}
catch (SocketException m)
{
Debug.WriteLine("SocketException: "+m);
}
finally
{
server.Stop();
}
}).Start();
}
Есть идеи, что я делаю не так?