下面是一个完整的 TCP 服务端与客户端示例,适用于 Python 3,使用 socket 模块,并正确处理了中文传输与异常情况,支持基本的多轮通信。
TCP 服务端(server_tcp.py)
import socket
HOST = '127.0.0.1' # 监听本地地址
PORT = 12345 # 自定义端口号
# 创建 TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen(1)
print(f"服务器已启动,监听端口 {PORT},等待连接...")
try:
conn, addr = server_socket.accept()
print("客户端已连接:", addr)
while True:
data = conn.recv(1024)
if not data:
print("客户端断开连接。")
break
msg = data.decode("utf-8")
print("客户端发来:", msg)
if msg.lower() in ["bye", "exit"]:
conn.sendall("再见!".encode("utf-8"))
break
reply = f"已收到:{msg}"
conn.sendall(reply.encode("utf-8"))
except Exception as e:
print("发生异常:", e)
finally:
conn.close()
server_socket.close()
print("服务器已关闭。")TCP 客户端(client_tcp.py)
import socket
HOST = '127.0.0.1' # 连接目标地址
PORT = 12345
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
client_socket.connect((HOST, PORT))
print("已连接服务器,输入消息并回车(输入 bye 或 exit 退出)")
while True:
msg = input("我说:")
if not msg:
continue
client_socket.sendall(msg.encode("utf-8"))
data = client_socket.recv(1024)
print("服务器回应:", data.decode("utf-8"))
if msg.lower() in ["bye", "exit"]:
break
except Exception as e:
print("连接异常:", e)
finally:
client_socket.close()
print("客户端已关闭。")◆ ◆ ◆
使用说明
1、先运行服务端,建议在命令行中运行。
python server_tcp.py2、再运行客户端(client_tcp.py)。可在 Python 编辑器中运行。
3、客户端输入文字后回车,服务器会回应。
4、输入 bye 或 exit 可关闭连接。
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.