2017-08-25 51 views
0

我有下面的代码,它接收我想要的数据,我想要的,然后终止。我怎样才能设置这个连接到我的客户端,它始终具有相同的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() 
+0

它看起来像你的客户端断开连接。你在问如何阻止客户端断开连接? –

+0

这会很好,但更多的是寻找最安全的方法连接到IP为192.168.1.200的客户端。所以只要服务器正在运行,它将始终在后台监听准备好接受。 – DevJustin

+0

哦,所以你的问题是如何拒绝来自IP地址而不是特定IP地址的客户端的连接? –

回答

0

要拒绝的连接不是特定的一个从IP地址等。 你已经拥有你最需要的东西:

print ('Got connection from', addr) 

只需添加这样的事情:

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

谢谢!我知道这是沿着这条线。我通过's.close()'使它更加安全 – DevJustin

相关问题