server.py
import socket bind_host="0.0.0.0" bind_port=50000 #AF_INETで、IPv4, SOCK_STREAMで、TCP プロトコルを利用 server=socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((bind_host, bind_port)) server.listen(5) print("host: "+bind_host) print("port: "+str(bind_port)) while True: client, addr=server.accept() print("from:"+ addr[0]+" "+str(addr[1])) while True: print("waiting for client response...") rec=client.recv(1024) print(">"+rec.decode('utf-8')) res=input() #python3 #res=raw_input() #python2 client.send(res.encode('utf-8')) if len(rec)==0: client.close() break
client.py
import socket target_host="127.0.0.1" target_port=50000 client=socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((target_host, target_port)) while True: str=input() #python3 #str=raw_input() #python2 client.send(str.encode('utf-8')) print("waiting for server response...") response=client.recv(4096) print(">"+response.decode('utf-8'))
server# python server.py host: 0.0.0.0 port: 50000
client# python client.py
server# python server.py host: 0.0.0.0 port: 50000 from:127.0.0.1 40349 <- client.pyを実行したタイミングで、表示される waiting for client response...
client# python client.py test <-- testと入力 waiting for server response... <-- test Enterしたら、表示される
server# python server.py host: 0.0.0.0 port: 50000 from:127.0.0.1 40349 waiting for client response... >test <- client.pyで、testと入力したタイミングで、表示される ok <- 入力する waiting for client response... <- ok Enterしたら表示される
client# python client.py test <-- testと入力 waiting for server response... <-- 表示される >ok