socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口。
import socket
#买手机
phone=socket.socket()
#插入/绑定手机卡
phone.bind(('127.0.0.1',8080))
#开机
phone.listen(5) #半连接池,限制的是请求数
#等待电话连接
print('start....')
while True:
conn,client_addr=phone.accept()
print(conn)
print('已经有一个连接建立成功',client_addr)
while True:
try:
print('服务端正在收数据...')
data=conn.recv(1024)
if len(data)==0:break
print('来自客户端的数据',data)
conn.send(data.upper())
except ConnectionResetError:
break
#挂掉电话连接
conn.close()
#关机
phone.close()
import socket
#买手机
phone=socket.socket()
#拨电话
phone.connect(('127.0.0.1',8080))
#通信:发\收消息
while True:
msg=input('>>>').strip()
if len(msg)==0:continue
phone.send(msg.encode('utf-8'))
data=phone.recv(1024)
print(data)
#关闭
phone.close()
import socket
#买手机
phone=socket.socket()
#拨电话
phone.connect(('127.0.0.1',8080))
#通信:发\收消息
while True:
msg=input('>>>').strip()
if len(msg)==0:continue
phone.send(msg.encode('utf-8'))
data=phone.recv(1024)
print(data)
#关闭
phone.close()
注意:必须先启动服务端,开启端口后才能再开启客户端。
在没有并发通信时,客户端1和服务器建立连接,端口被占用,客户端2向服务器发送信息时,服务器收不到信息。只有当客户端1断开后,客户端2才能向服务器发送消息。
原文:https://www.cnblogs.com/zhoajiahao/p/11090630.html