树莓派python网络通信_Python3使用Socket实现树莓派与计算机半双工通信,实现聊天功能...
項目中需要實現PC與樹莓派通信完成控制,尋找一遍后,發現現例子大多比較簡單,可以實現一次收發過程,第二次數據發送就會出現問題。觀察發現少一個循環,無法保持聯通狀態,代碼修改后可以簡單的實現半雙工通信,實現簡單聊天應答功能。
首先在命令行下ipconfig 查出設備ip。client與server端為同一ip,以server端為準。
server端代碼
import socket
HOST = '192.168.0.100' # 連接本地服務器
PORT = 8001 # 設置端口號
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 選擇IPv4地址以及TCP協議
sock.bind((HOST, PORT)) # 綁定端口
sock.listen(5) # 監聽這個端口,可連接最多5個設備
while True:
connection, address = sock.accept() # 接受客戶端的連接請求
Building_connection = connection.recv(1024) # 接收數據實例化
if Building_connection==b"request":
print("connection is ok!")
connection.send(b'welcome to server!') #服務器已經連接
while Building_connection==b"request":
a= connection.recv(1024) #循環,持續通訊接收數據
if a==b"exit":
connection.send(b"close")
break
if a!=b"request"and a:
print("接收端:")
print((a).decode())
print("服務端:")
se=input()
connection.send((se).encode("utf-8"))
print("")
break
connection.close()
print("連接關閉")
client端代碼
import socket
HOST = '192.168.0.100'
PORT = 8001
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
print("try to connect distance server")
sock.send(b'request')
re_mes=sock.recv(1024).decode()
print(re_mes)
if re_mes=="welcome to server!":
while 1:
print("接收端:")
a=input()
sock.send((a).encode("utf-8"))
print("服務端:")
re_mes=sock.recv(1024).decode()
if re_mes=="close":
break
print(re_mes)
print("")
sock.close()
print("連接關閉")
總結
以上是生活随笔為你收集整理的树莓派python网络通信_Python3使用Socket实现树莓派与计算机半双工通信,实现聊天功能...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: strlen函数_7.2 C++字符串处
- 下一篇: sql 默认值为0_int 默认值为0