进行通信通信的两端就是套接字;有两种类型,分别是服务器套接字、客户端套接字
服务器
from socket import *
# 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是著名端口,一般不选。
同一时间一个端口只能绑定一个服务
"""
addr = ('10.7.185.82', 8085)
server.bind(addr)
# 3.开始监听请求(按电池,等别人打电话)
server.listen(512)
# 4.让服务器一直运行
while True:
print('监听状态....')
# 5.接收请求(接电话)
# 代码运行到这个位置,会停下来,等到有客户端给服务器发送请求为止。。。
connect, addr = server.accept()
print(addr, '连接成功!')
while True:
# 6.接收数据(听别人说)
"""
recv(bufsize) - bufsize,设置一次性能够接收的数据大小的最大值,单位是字节
返回的数据类型是字节
"""
# print('接收消息前')
re_data = connect.recv(1024)
print(re_data.decode(encoding='utf-8'))
# print('接收消息后')
# 7.发送数据 (说给别人听)
message = input('>>>')
connect.send(message.encode())
# 8.关闭连接(挂电话)
connect.close()
客户端
from socket import *
# 1.创建套接字对象
client = socket()
# 2.连接服务器
client.connect(('10.7.185.82', 8085))
while True:
# 3.发送消息
message = input('请输入:')
client.send(message.encode())
# 4.接收消息
re_data = client.recv(1024)
print(re_data.decode(encoding='utf-8'))