Я написал простой сервер Tcp в C#: (я заменил некоторые части кода в «сделайте некоторые вещи», когда это не имеет ничего общего с server теперь, когда я пытаюсь связаться с сервером с клиента python или с клиентом android, я получаю такие ошибки, как: «другая сторона активно отказалась от соединения». Что я должен делать? проблема в моем C# код, или я, вероятно, не контактирование правильно? спасибо.не может получить данные с сервера C# tcp
public bool ListenLoop(Int32 port, IPAddress localAddr)
{
try
{
server = new TcpListener(localAddr, port);
// Start listening for client requests.
server.Start();
// Buffer for reading data
Byte[] bytes = new Byte[256];
String data = null;
// Enter the listening loop.
while(true)
{
//Waiting for a connection
// Perform a blocking call to accept requests.
TcpClient client = server.AcceptTcpClient();
//connected!
// Get a stream object for reading and writing
NetworkStream stream = client.GetStream();
int i;
// Loop to receive all the data sent by the client.
while((i = stream.Read(bytes, 0, bytes.Length))!=0)
{
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
//handling opCodes
if(data[0] == '0') //log in
{
//do some stuff
byte[] msg = System.Text.Encoding.ASCII.GetBytes(response);
// Send back a response.
stream.Write(msg, 0, msg.Length);
//sent
}
else if (data[0] == '1') //download tune names
{
//do some stuff
byte[] msg = System.Text.Encoding.ASCII.GetBytes(response); //response is the names
// Send back a response.
stream.Write(msg, 0, msg.Length);
//sent
}
else if (data[0] == '2') //changing choice
{
//do some stuff
byte[] msg = System.Text.Encoding.ASCII.GetBytes(response);
// Send back a response.
stream.Write(msg, 0, msg.Length);
//sent
}
}
// Shutdown and end connection
client.Close();
}
}
catch(SocketException)
{
return false;
}
finally
{
// Stop listening for new clients.
server.Stop();
}
}
Это проблема с соединением. Проверьте, запущен сервер и проверьте свой брандмауэр, чтобы убедиться, что соответствующий порт открыт. Также проверьте, что вы пытаетесь подключиться к правильному ip/port, поскольку на том же компьютере может быть что-то еще, которое не понимает ваш входящий запрос. – Squonk
Если вы слушаете адрес 'localhost', тогда соединения с другими хостами будут отклонены. вы подключаете ** из ** той же машины? – Skaperen
Привет, я действительно соединяюсь с той же машиной. Странно, что я скопировал свой код в консольное приложение, и сервер работал отлично, но когда я запускаю его в приложении wpf, он отказывается от соединений – gilgemer