socket_server_tcp.py
import socket
import random
#创建实例
sk = socket.socket()
#定义IP和端口
ip_port = ("127.0.0.1", 8888)
#绑定监听
sk.bind(ip_port)
# 设置最大链接数
sk.listen(5)
# 轮询,不断的接收数据
while True:
# 提示信息
print("正在等待接收数据。。。。。")
# 接收数据
conn, address = sk.accept()
# 定义信息
msg = "链接成功!"
#返回信息 py3.x以上,网络数据的发送接收都是byte类型
#str则需要编码
conn.send(msg.encode())
# 不断接收客户端发送的信息
while True:
# 每次读取缓冲区1024字节的数据
data = conn.recv(1024)
# 打印数据,处理数据逻辑
print(data.decode())
# 接收到推出的指令
if data == b'exit':
break
# 处理客户端数据
conn.send(data)
# 发送随机数
conn.send(str(random.randint(1, 1000)).encode())
pass
# 主动关闭链接
conn.close()
pass
socket_client_tcp.py
import socket
# 实例初始化
client = socket.socket()
# 访问的服务器端口和ip
ip_port = ("127.0.0.1", 8888)
# 链接服务器
client.connect(ip_port)
while True:
# 接收主机信息
data = client.recv(1024)
# 打印接收的数据,此处的byte数据特指py3.x以上
print(data.decode())
# 输入发送的消息
msg_input = input("请输入发送的消息:")
# 消息发送
client.send(msg_input.encode())
if msg_input == "exit":
break
pass
data = client.recv(1024)
print(data.decode())
pass