Python使用Socket写一个简单聊天程序

b2b模式的聊天工具

服务端:

复制代码
 1 # 链接
 2 while True:
 3     print('等待连接...')
 4     sock,adr = server_socket.accept()
 5     while True:
 6         try:
 7             # 接受数据
 8             data = sock.recv(1024)
 9             print(adr[0] + '发来消息:', data.decode())
10             # 发送数据
11             send_msg = input("请输入发送内容>>").strip()
12             sock.send(send_msg.encode('utf-8'))
13         except ConnectionResetError as e:
14             print('%s断开连接!' %adr[0])
15             break
16     # 关闭本次连接
17     sock.close()
18 # 关闭socket
19 server_socket.close()
复制代码

客户端:

复制代码
import socket

# 设置服务器ip和端口号
host_ip = '192.168.31.207'
port = 8896
client_socket = socket.socket()
client_socket.connect((host_ip,port))

while True:
    send_msg = input('请输入内容>>').strip()
    if send_msg == '':
        continue
    client_socket.send(send_msg.encode())
    recv_data = client_socket.recv(1024)
    print(host_ip+"回复:"+recv_data.decode())

client_socket.close()
复制代码

目前只支持客户端发一句,服务端发一句这种模式。

超过一句内容后,发出去的内容对方接收不到

结果:

 

posted @   Tynam.Yang  阅读(619)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示