tcp编程-python
服务端:
import socket
word={'a':'1','b':'2','c':'3','d':'4','e':'5','bye':'bye'}
host=''
port=50007
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
print('listening at a port:',port)
conn,addr=s.accept()
print('conn by:',addr)
while True:
data=conn.recv(1024)
data=data.decode()
if not data:
break
print('Recev massage:',data)
conn.sendall(word.get(data,'nothing').encode())
conn.close()
客户端:
import socket
host='127.0.0.1'
port=50007
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((host,port))
except Exception as e:
print('not open or no found')
sys.exit()
while True:
c=input('input a letter:')
s.sendall(c.encode())
data=s.recv(1024)
data=data.decode()
print('receive:',data)
if c.lower()=='bye':
break
s.close()
1、运用accept()收到connect()请求
2、data=conn.recv(1024)收到s.sendall(c.encode())的信息
3、data=data.decode()转码
4、关于decode()和enconde():发送端用encode(),接受端用decode()