我一直在尝试使用Python API将数据('hello world'字符串)从PLC插入到MongoDB中(它从PLC中提取数据并将其推送到MongoDB中)。我收到了错误消息:
“D:\ Python27 \ lib \ socket.py,第222行,在meth return getattr(self._sock,name)(* args)错误: [Errno 10061]因为目标机器无法建立连接 积极拒绝它“
尽管我在下面写的代码的服务背景中运行了mongod
。此外,MongoDB
所在的服务器IP地址为10.52.124.186
,PLC的地址(我在PC上使用它)为10.52.124.135
。我已经尝试了几乎所有的东西来解决它,但我还没有得到如何通过它的线索。我哪里错了?
#!/usr/bin/python
import socket
import socket
import pymongo
from pymongo import MongoClient
import datetime
# Connection to server (PLC) on port 27017
server = socket.socket()
host = '10.52.124.135'
port = 27017
server.connect((host, port))
print server.recv(1024)
server.close
#Connection to Client (Mongodb) on port 27017
IP = '10.52.124.186'
PORT = 27017
BUFFER_SIZE = 1024
client = MongoClient('10.52.124.186', 27017)
db = client.RXMMongoDB
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((IP, PORT))
s.listen(1)
#connections loop
while True:
conn, addr = s.accept()
print 'Connection address:',addr
try:
# read loop
while True:
data = server.recv(BUFFER_SIZE)
if not data:
break
# send to Mongo
mongodoc = { "data": data, "date" : datetime.datetime.utcnow() }
db.AAAA.insert(mongodoc)
finally:
conn.close()
答案 0 :(得分:0)
我对Python并不了解,但对我来说,关闭套接字" server.close"然后尝试使用它" data = server.recv(BUFFER_SIZE)"。 无论如何,也许你应该首先在屏幕上打印PLC中的文本,而不是一次性尝试全部。如果你将它分解成较小的部分,然后当你知道它们是分开工作时将它们粘在一起,通常会更容易。
另见this post跟踪您的错误