2017-08-25 17 views
0

私は以下のコードを持っていて、私が望むデータを受け取り、それをやりなおして終了します。これを設定して、常に同じIPを持ち、接続されているか、そのクライアントから聞き取っているクライアントに接続するにはどうすればよいですか?指定された単一のクライアントに接続する方法

バーコードスキャナーでデータを送信しても問題ありません。ちょうどそれを常にリストする必要があります。あなたが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

print ('Got connection from', addr) 

はちょうどこのような何かを追加します。クライアントの接続を停止する方法を尋ねていますか? –

+0

これは素晴らしいことですが、192.168.1.200のIPを持つクライアントにのみ接続する最も安全な方法を探しています。したがって、サーバーが稼働している限り、バックグラウンドで常に受け入れる準備ができています。 – DevJustin

+0

ああ、あなたの質問は、特定のもの以外のIPアドレスでクライアントからの接続を拒否する方法ですか? –

答えて

0

は、特定のもの以外のアドレス。 あなたはすでにあなたが必要なもののほとんどを持っている:あなたのクライアントが切断されたように見えます

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

ありがとうございました!私はそれがそれらの行に沿った何かであることを知っていた。 's.close()'を実行するだけで、より安全になりました。 – DevJustin

関連する問題