client:
import socket
# 1.创建会话
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 指定协议:AF_INET或AF_INET6;SOCK_STREAM表示执行面向流的TCP协议
# 2.建立链接
client.connect(('192.168.5.2', 8088))
# 3.发送数据
while True:
data = input('请输入给服务器发送的数据:')
client.send(data.encode('utf-8')) # 给服务器发送信息
back_info = client.recv(1024).decode('utf-8') # 接受服务器应答信息
print(back_info)
server:
import socket
# 1.创建会话
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 指定协议:AF_INET或AF_INET6;SOCK_STREAM表示执行面向流的TCP协议
# 2.建立链接
server.bind(('192.168.5.2', 8088)) # 指定链接地址和端口号
# 3.监听链接
server.listen(5) # 这里的5相当于任务数,用于多线程或者多进程中,表示同一时间最多有5个连接
print('######')
# server.accept()会接收到两个数据:客户端基本信息和地址
info, addr = server.accept()
print(info) # 这里一次只能接收到一个客户端的信息,想要接收多个开辟子线程
# <socket.socket fd=136, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.5.2', 8088), raddr=('192.168.5.2', 52112)>
print(addr)
# ('192.168.5.2', 52112)
print('######')
while True:
data = info.recv(1024) # 通过客户端来接受数据
print('收到来自客户端的数据' + data.decode('utf-8'))
send_data = input('请输入服务器的应答信息:')
info.send(send_data.encode('utf-8')) # 给客户端发送应答信息