如何保持与单个指定客户端的连接

时间:2017-08-25 22:21:07

标签: python python-3.x sockets socketserver

我有以下代码,它接收我想要的数据,我想要的,然后终止。如何将其设置为连接到始终具有相同IP并保持连接或从该客户端侦听的客户端?

它是一个条形码扫描仪并且发送数据很好,我只需要一直列出它。

Servercode.py

import socket   #for sockets
import sys  #for exit

try:
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM,)
except socket.error as err_msg:
  print ('Unable to instantiate socket. Error code: ' + str(err_msg[0]) + ' , Error message : ' + err_msg[1])
sys.exit();

print ('Socket Initialized')

host = socket.gethostname() 
port = 12345                
s.bind((host, port))        

s.listen(5)                 
print ('listening....')


conn, addr = s.accept()
print ('Got connection from', addr)
while 1:
 data = conn.recv(1024)
 stringdata = data.decode('ascii')
 if not data: break
 print ('received data:', stringdata)
conn.close()

1 个答案:

答案 0 :(得分:0)

您希望拒绝来自特定IP地址以外的IP地址的连接。  您已经拥有了所需的大部分内容:

print ('Got connection from', addr)

只需添加以下内容:

if addr[0] != '192.168.1.200':
    conn.close()