Как отправить данные от C# до python с помощью сокетов? - PullRequest
0 голосов
/ 01 апреля 2020

Я не могу найти ни одного примера или учебника о том, как отправить данные с C# на python.

в моем приложении C# должен продолжать считывать данные с оборудования и отправлять их на python для обработки. Я попытался создать сервер c с базовым интерфейсом python и клиент c с базовым интерфейсом C#, и мне так и не удалось установить sh соединение между клиентом и сервером со следующим выводом из C# Невозможно установить соединение, потому что целевой компьютер активно отказал ему . я протестировал свой python сервер на python клиенте и смог установить sh соединение просто отлично.

как правильно отправить данные с C# на python с использованием сокетов? есть ли доступный учебник на примере, которому я могу следовать? что-то не так с моим кодом? вот оно:

Python Код сервера:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 1234))
s.listen(5)

while True:
    clientsocket, address = s.accept()
    print(f"Connection from {address} has been established!")
    clientsocket.send(bytes("Welcome to the server!", "utf-8"))
    clientsocket.close()

C# Код клиента:

 static void ExecuteClient()
        {

            try
            {

                IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
                IPAddress ipAddr = ipHost.AddressList[0];
                IPEndPoint localEndPoint = new IPEndPoint(ipAddr, 1234);

                Socket sender = new Socket(ipAddr.AddressFamily,
                           SocketType.Stream, ProtocolType.Tcp);

                try
                {
                    sender.Connect(localEndPoint);

                    Console.WriteLine("Socket connected to -> {0} ",
                                  sender.RemoteEndPoint.ToString());

                    byte[] messageReceived = new byte[1024];

                    int byteRecv = sender.Receive(messageReceived);
                    Console.WriteLine("Message from Server -> {0}",
                          Encoding.ASCII.GetString(messageReceived, 0, byteRecv));

                    sender.Shutdown(SocketShutdown.Both);
                    sender.Close();
                }

                // Manage of Socket's Exceptions 
                catch (ArgumentNullException ane)
                {

                    Console.WriteLine("ArgumentNullException : {0}", ane.ToString());
                }

                catch (SocketException se)
                {

                    Console.WriteLine("SocketException : {0}", se.ToString());
                }

                catch (Exception e)
                {
                    Console.WriteLine("Unexpected exception : {0}", e.ToString());
                }
            }

            catch (Exception e)
            {

                Console.WriteLine(e.ToString());
            }
        }
...