服务器端:
import socket
import random
sk = socket.socket()
ip_port = ('127.0.0.1', 8888)
sk.bind(ip_port)
sk.listen(5)
while True:
print('正在等待客户端连接...')
conn, address = sk.accept()
print('客户端已连接, ',end='')
msg = "您已连接..."
conn.send(msg.encode())
print('连接信息已发送...')
while True:
#接收客户端消息
data = conn.recv(1024)
print(data.decode())
#接收退出指令
if data == b'exit':
break
if data == None :
conn.send('您输入了空字符!!!')
# 再送一个随机数
str_msg = '您输入的是: '
conn.send(str_msg.encode() + data + ", 随机数: ".encode() + str(random.randint(1,1000)).encode())
#主动关闭客户端连接
conn.close()
print('已关闭该客户的连接')
客户端:
import socket
client = socket.socket()
ip_port = ('127.0.0.1', 8888)
client.connect(ip_port)
# 接收数据
data = client.recv(1024)
# 打印接收
print(data.decode())
#定义一个循环不断发送消息
while True:
msg_input = input('请输入要发送的消息: ')
#发送
client.send(msg_input.encode())
if msg_input == 'exit':
print("\n正在退出...")
break
#防止直接回车,空字符串导致程序无效
if msg_input == '':
print('您没有输入内容',end=', ')
continue
# 服务器端发送了数据,这里也接收数据
data = client.recv(1024)
# 打印接收
print(data.decode())
本文介绍了一个基于Python的简易TCP服务器与客户端的实现过程,包括服务器监听、客户端连接、消息收发及随机数响应等功能。通过代码示例,详细展示了如何使用socket模块创建网络通信程序。
1621

被折叠的 条评论
为什么被折叠?



