大佬教程收集整理的这篇文章主要介绍了Python Socket 在同一个树莓上发送和接收不起作用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我做了一个从仪器接收数据的小程序。它在 windows 上运行良好,但我需要在 RaspBerry Pi 上运行它,但它不起作用。 这是服务器的代码:
`from socket import socket,gethostbyname,AF_INET,SOCK_DGRAM
import pymysql.cursors
PORT_numbER = 57806
SIZE = 1024
hostname = gethostbyname( '' )
mySocket = socket( AF_INET,SOCK_DGRAM )
mySocket.bind( (hostname,PORT_numbER) )
print ("Test server Listening on port {0}\n".format(PORT_numbER))
while True:
(data,addr) = mySocket.recvfrom(SIZE)
print("aa")
data= data.decode("utf-8")
data = data.split(" ",2)[-1]
data = data.partition(',')
print (data[0])
print(addr)
connection = pymysql.connect(host='localhost',user='mezzo_mobile',password='',database='mezzo_mobile',charset='utf8mb4',cursorclass=pymysql.cursors.Dictcursor)
with connection:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO misure (mac,strumento,dato) VALUES (%s,%s,%s)"
if str(addr[0])== "192.168.1.99":
cursor.execute(sql,("00-05-2B-08-44-EB","NOX",str(data[0])))
connection.commit()`
这里是客户端的代码:
` import sys
from socket import socket,SOCK_DGRAM
SERVER_IP = '192.168.1.99'
PORT_numbER = 53700
SIZE = 1024
mySocket = socket( AF_INET,SOCK_DGRAM )
mySocket.bind(('192.168.1.100',57806))
while True:
data = bytes.fromhex('014630303430335230303102313103')
mySocket.sendto(data,(SERVER_IP,PORT_numbER))
exit() `
这个仪器是这样工作的:我发送一个包含这个数据“014630303430335230303102313103”的数据包,它把测量值发回给我。正如我所说,它在 windows 上运行良好,但我在 RaspBerry 上需要它。 在RaspBerry上,如果我先运行服务器然后运行客户端,则客户端会抛出错误:
OSerror: [Errno 98] Address already in use
我不知道该怎么做,我也不太了解python,有什么建议吗?
我搜索了一些 Python 上的套接字是如何工作的,发现我可以在同一个脚本中完成所有操作。这就是代码现在的样子:
import sys
from socket import socket,AF_INET,SOCK_DGRAM
SERVER_IP = '192.168.1.99'
PORT_numbER = 53700
SIZE = 1024
mySocket = socket( AF_INET,SOCK_DGRAM )
mySocket.bind(('192.168.1.100',57806))
while True:
data = bytes.fromhex('014630303430335230303102313103')
mySocket.sendto(data,(SERVER_IP,PORT_numbER))
(data,addr) = mySocket.recvfrom(SIZE)
print(data)
exit()
现在它按预期工作
以上是大佬教程为你收集整理的Python Socket 在同一个树莓上发送和接收不起作用全部内容,希望文章能够帮你解决Python Socket 在同一个树莓上发送和接收不起作用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。