socket:又称套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通信。
socket是一种“打开--读写--关闭”模式的实现
1.socket服务端
import socket.
#创建socket对象
sk = socket.socket()
# 绑定ip和端口
# 0.0.0.0 表示本机的所有IP地址
sk.bind( ("0.0.0.0",8899) )
# 监听 设置排队队列数不超过10
sk.listen(10)
# 进入阻塞状态(等待客户端的连接)
# 接收客户端的请求--》成功后进入非阻塞状态
conn,addr = sk.accept()
# 客户端的socket对象
print(f'conn is:{conn}')
print(f'addr is:{addr}')
# 设置死循环,两边可以一直通信
# 通信的数据都是以二进制文件进行传输的所以我们要在发包前,将数据手动设置成二进制类型
while 1:
# 接收客户端数据,一次最多1024字节
accept_data = conn.recv(1024)
print("接受到的内容是:",accept_data.decode('utf8'))
# 可以向客户端发送数据
# 数据只能是byte类型
send_data = input("您要发送的内容是:")
conn.sendall(bytes(send_data,encoding="utf8"))
# 关闭连接
conn.close()
2.socket客户端
import socket
# 创建socket实例
sk = socket.socket()
# 连接到服务器端
sk.connect( ("127.0.0.1",8899) )
while 1:
send_data=input("您要发送的内容是:")
# 发送信息
sk.sendall(bytes(send_data,encoding='utf8'))
#接受来自服务端的信息
accept_data = sk.recv(1024)
# 打印接收到的数据
print("接受到的数据是:", accept_data.decode('utf8'))
# 关闭连接
sk.close()