导入socked模块
服务器
进行通信通信的两端就是套接字;有两种类型,分别是服务器套接字、客户端套接字
1.创建套接字对象()
family - 设置ip协议类型,AF_INET(ipv4),AF_INET6(ipv6)
type - 设置传输协议类型,SOCK_STREAM(TCP),SOCK_DGRAM(UDP)
server = socket(family=AF_INET,type=SOCK_STREAM)
2.绑定ip地址和端口()
bind((ip地址,端口))
ip地址 - 字符串,服务器对应的ip地址
端口号 - int,端口用来区分一台电脑上不同的服务 端口号范围(0-65535)
0-1024是著名端口,一般不选
同一时间一个端口号只能绑定一个服务
server.bind(('10.7.185.72',8082))
3.开始监听请求(等别人打电话)
server.listen(500)
4.让服务器一直运行
while True:
print('监听状态......')
#5. 接受请求(电话响了,接电话)
ct,addr = server.accept() # 这个函数有两个返回值
print(addr,'连接成功')
# 代码运行到这个位置会停,等到有客户端给服务器发送请求为止
print('接电话后')
# 6.接受消息(听别人说)
recv(bufsize) - 设置一次性能够接受的数据大小的最大值 单位字节
返回的数据类型是字节
while True:
re_data = ct.recv(1024)
print(re_data.decode(encoding='utf-8'))
# 7.发送数据(说给别人听)
message=input('输入')
ct.send(message.encode())
# 8.关闭连接(挂电话)
ct.close()
客户端
# 1.创建套接字对象
client= socket()
# 2.连接服务器
client.connect(('10.7.185.72',8082))
# 3.发送消息
while True:
message=input('请输入')
client.send(message.encode())
# 4.接受消息
re_data=client.recv(1024)
print(re_data.decode(encoding='utf-8'))