如何使用Bottle and Socket在服务器和客户端之间进行通信(在线)

时间:2016-04-11 15:47:37

标签: python sockets

我正在使用Bottle,socket和serial在客户端和服务器之间进行通信以打开电机。这段代码在我的机器上运行良好,但是当我尝试将其联机时,我收到网络连接错误。我被告知我应该使用websockets而不是套接字(以避免尝试仅使用IP),但不知道从哪里开始实现websockets。我正在寻找任何建议,并通过示例帮助我在线获取此信息。我在PythonAnywhere.com上主持并为我的帐户提供套接字支持。

Server.py

DECLARE @id INT 
SET @id = (select MAX(Code) from Items)

SET @id =@id+1

insert into Items (Code,Name) values(@id,'m')

Client.py

from socket import *
import serial
host = ''
port = 7000
our_socket = socket(AF_INET, SOCK_STREAM)
our_socket.bind((host, port))
our_socket.listen(1) 
conn, addr = our_socket.accept()

print ('Received motor start request from ' + str(addr))
data = conn.recv(1024)
arduinoData = serial.Serial('/dev/cu.usbmodem1421',9600)
arduinoData.write("1".encode())
reply = input("Hit 1 to allow motor request: ")
conn.send(bytes(reply,'UTF-8'))
data = conn.recv(1024)
arduinoData = serial.Serial('/dev/cu.usbmodem1421',9600)
arduinoData.write("1".encode())
reply = input()
conn.send(bytes(reply,'UTF-8'))
data = conn.recv(1024)
arduinoData = serial.Serial('/dev/cu.usbmodem1421',9600)
arduinoData.write("0".encode())

conn.close()

它如何出现在我身上

我的代码原始而简单,但到目前为止一直有效。对于在线问题,似乎这里唯一缺少的是连接到我的本地机器的方法。我原本以为它就像IP一样简单,但似乎存在问题。

ASCII图

什么有效:

Client.py(离线瓶网站)< -----> Server.py(在我的机器上)------> Arduino IDE

什么不起作用:

互联网------> Client.py(online @ PythonAnywhere)< -----> Server.py(在我的机器上)------> Arduino IDE

谢谢

0 个答案:

没有答案