Я не могу найти ни одного примера или учебника о том, как отправить данные с 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());
}
}