Отправка данных из [Python Client] на [C # Server] с помощью сокета - PullRequest
0 голосов
/ 05 июля 2018

Я хочу отправить байтовые данные из Python-Client на C # Server с помощью простого приложения Socket. Сервер C # работает нормально с клиентом C #!

Но когда я пытаюсь использовать Python Socket для отправки данных на C # -сервер, данные никогда не приходят.

Я не очень привык к Python, может кто-нибудь проверить мой код и подсказать, как получить данные на моем сервере c #?

Я сделал ошибку в коде? Может быть, это неправильный способ отправки байтовых данных из Python в C #? Есть ли лучшее решение?

Клиент Python:

import socket

TCP_IP = '127.0.0.1'
TCP_PORT = 5005
MESSAGE = b'Hello World !'

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE)
s.close()

C # Сервер:

private void start()
{
    Console.WriteLine("Port: ");
    _port = Console.ReadLine();
    byte[] buffer = new Byte[1024];
    IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse(_port));
    Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    try
    {
        listener.Bind(localEndPoint);
        listener.Listen(10);

        while (true)
        {
            Console.WriteLine("Waiting for a connection...");
            Socket socket = listener.Accept();
            data = null;

            while (true)
            {
                int bytesRec = socket.Receive(buffer);
                data += Encoding.ASCII.GetString(buffer, 0, bytesRec);
                if (data.IndexOf("<EOF>") > -1)
                {
                    break;
                }
            }

            Console.WriteLine("Text received : {0}", data);
            byte[] msg = Encoding.ASCII.GetBytes(data);

            socket.Send(msg);
            socket.Shutdown(SocketShutdown.Both);
            socket.Close();
        }

    }
    catch (Exception e)
    {
        Console.WriteLine(e.ToString());
    }

    Console.WriteLine("\nPress ENTER to continue...");
    Console.Read();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...