先上代码:
server.py
import socket
ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ser.bind(('127.0.0.1', 666))
ser.listen(10)
conn,addr = ser.accept()
print('------server------')
while True:
conn.send('我是服务器'.encode('utf-8'))
accept = conn.recv(2048).decode('utf-8')
print(accept)
if accept == 'quit':
conn.close()
break
client.py
import socket
cli = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
cli.connect(('127.0.0.1',666))
print('------client------')
for i in range(10):
accept = cli.recv(2048).decode('utf-8')
cli.send('我是客户端'.encode('utf-8'))
print(accept)
accept = cli.recv(2048).decode('utf-8')
cli.send('quit'.encode('utf-8'))
cli.close()
1、ser = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #AF_INET ipv4协议 SOCK_STREAM tcp协议 创建并返回一个新的socket对象
2、ser.bind(('127.0.0.1',666)) #将socket绑定到一个地址和端口上,用于socket服务端,address必须是一个双元素元组,((host,port)),主机名或者IP地址+端口号
3、ser.listen(10) #将socket设置成监听模式,可以监听backlog外来的连接请求,让服务器开始监听客户端发来的连接请求,10表示最多连接数为10个
4、conn,addr = ser.accept() #开启这个之后,socket会进入阻塞状态,并把获取的connection和客户端的ip赋值给前面的变量conn和addr
5、cli.connect(('127.0.0.1',666)) #将socket连接到定义的主机和端口上,用于socket客户端