[英]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.