在Python中读取GPS输入数据

0 投票
1 回答
2740 浏览
提问于 2025-04-18 08:20

我正在开发一个Python脚本,用来读取一个端口并打印出结果。我的想法是从GPS获取数据。

这是我正在使用的代码。

#!/usr/bin/env python
import socket
host = ''       # your IP address
port = 5000    # pick a port you want to listen on. 
backlog = 5     # number of clients you could handle at once
size = 1024     # max size of data packet

# create socket:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect to host / port:
s.bind((host,port))
# start listening:
s.listen(backlog)
print "listening on: " + str(port)
# stay in this loop until ctrl-c is typed at console:
while 1:
    client, address = s.accept()
    data = client.recv(size)
    if data:
        print data          # echo data to console
        client.send(data)   # echo data to client (may confuse your application, great for browser)
    client.close()

现在我可以通过telnet连接并发送消息,服务器会输出结果。我也可以通过http://[ip]:[port]连接并获取输出。但是,我无法从GPS获取任何信息,尽管它是在线的,而且我已经重新检查了配置。我还尝试了其他设备,但都没有成功。

我的问题是:我是不是漏掉了什么?

1 个回答

0

使用线程功能之前,需要先导入相关的库。

你需要用 s. 来写入数据,还需要用 def 来定义脚本的运行方式。

代码应该像这样:

from threading import *
class client(thread):
  def __init__(self, socket, address):
      Thread.__init__(self)
      s.sock = socket
      s.addr = address
  s.start()
def run(self)
    while 1:
    data = s.client.recv(size)
    print ('send data:' data)
    self.sock.send(b'Sending')

serversocket.listen(5)
print ('server start listing')
while 1:
     clientsocket, address = serversocket.accept()
     client(clientsocket, address)

撰写回答