Hi guys. I am basically transferring the data from PLC to PC (where the Python API runs) but I'm unable to insert into MongoDB thereafter. When I run the Python script on IDLE, the output is
Hello World! Traceback (most recent call last): File "C:\Users\SRA2LO\Desktop\API.py", line 32, in <module> s.bind((IP, PORT)) File "C:\Python27\lib\socket.py", line 228, in meth return getattr(self._sock,name)(*args) error: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions and when I change the IP of MongoDB server, it shows Hello World! Traceback (most recent call last): File "C:\Users\SRA2LO\Desktop\API.py", line 32, in <module> s.bind((IP, PORT)) File "C:\Python27\lib\socket.py", line 228, in meth return getattr(self._sock,name)(*args) error: [Errno 10049] The requested address is not valid in its context. Could you please help me out? I have disabled the firewall as well. Here's the API I have written. #!/usr/bin/python import socket import socket from pymongo import MongoClient #from eve import Eve import datetime # Connection to server (PLC) on port 27017 server = socket.socket() host = "10.52.124.135" #IP of PLC port = 27017 BUFFER_SIZE = 1024 ############### server.connect((host, port)) print server.recv(1024) server.close #Connection to Client (Mongodb) on port 27017 IP = "127.0.0.1" PORT = 27017 BUFFER_SIZE = 1024 client = MongoClient('127.0.0.1', 27017) db = client.test_database 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 conn.sendall(data) # send to MongoDB mongodoc = { "data": data, "date" : datetime.datetime.utcnow() } ABC = db.ABC ABC_id = ABC.insert_one(mongodoc).inserted_id finally: conn.close() -- https://mail.python.org/mailman/listinfo/python-list