套接字
import socket
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.64', 8002)
server.bind(addr)
# 3. 开始监听请求(按电池,等电话)
server.listen(512)
print('开始监听')
# 4. 让服务器保持运行
while True:
# 5.接收请求(接电话) 代码运行到这个位置,会停下来,等到有客户端给服务器发送请求位置
connect,addr = server.accept()
print('连接成功')
# 6. 接收消息(听别人说)
'''
recv(bufsize) ---bufsize 设置一次性能够接收的数据大小的最大值 单位字节
返回的数据类型是字节
'''
while True:
re_data = connect.recv(1024)
print(re_data.decode(encoding='utf-8'))
# 7. 发送消息(说给别人听)
message = input('请输入:')
connect.send(message.encode())
# 8. 关闭连接(挂电话)
# connect.close()
from socket import *
client = socket()
# 创建套接字对象
# 2.连接服务器
client.connect(('10.7.185.63', 9002))
while True:
# 3. 发送消息
message = input('请输入:')
client.send(message.encode())
# 4. 接收消息
re_data = client.recv(1024)
print(re_data.decode(encoding='utf-8'))