簡體   English   中英

連接Python服務器和C#客戶端

[英]Connecting a Python Server and C# Client

我試圖使用C#GUI程序單擊按鈕將文本消息發送到Raspberry pi(Python服務器)。我的python服務器應該打印我的文本消息。我可以編譯並運行這兩個程序。任何錯誤消息..但是,我在Raspberry pi上未收到任何消息,並且文本數據未在Raspberry Pi的終端上打印。

這是C#客戶端代碼:

public partial class MainWindow : Window
    {
        bool button1WasClicked = false;

        public MainWindow()
        {
            InitializeComponent();
        }

        UdpClient client = new UdpClient();

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

            if (button1WasClicked)
            {
                byte[] a1 = Encoding.ASCII.GetBytes(textbox.Text);
                client.Send(a1, a1.Length);
                button1WasClicked = false;                  
            }
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            //Send data when button is clicked
            IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ipbox.Text), int.Parse(portbox.Text)); // endpoint where server is listening
            client.Connect(ep);
            button1WasClicked = true;
            byte[] a1 = Encoding.ASCII.GetBytes(textbox.Text);
            client.Send(a1, a1.Length);
        }
    }

我的python服務器代碼:

# Echo server program
import socket
import RPi.GPIO as GPIO
import os
import sys

HOST = '192.168.1.12'  # Symbolic name meaning all available interfaces
PORT = 9050        # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print ('Connected by', addr)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)

while 1:
    data = conn.recv(1024)
    if not data: break
    if data =="1":
        GPIO.output(7,True)
    if data =="2":
        GPIO.output(7,False)
    conn.sendall(data)
    os.system(str(data)) //prints data on the terminal
    conn.sendall(data)
conn.close()

您的服務器使用TCP(SOCK_STREAM),但客戶端使用UDP-兩者都需要使用相同的協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM