Python 使用TCP\UDP协议创建一个聊天室

server端代码:

python 复制代码
#encoding=utf-8
# 服务端代码
import socket

def server():
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    host = socket.gethostname()
    port = 12345
    server_socket.bind((host, port))
    server_socket.listen(5)

    print('等待客户端连接...')
    while True:
        client_socket, addr = server_socket.accept()
        print('连接地址:', addr)

        while True:
            message = client_socket.recv(1024).decode('utf-8')
            if not message:
                break
            print(f"客户端消息:{message}")

            # 服务端回复消息
            reply = input('回复客户端:')
            client_socket.send(reply.encode('utf-8'))

        client_socket.close()

if __name__ == '__main__':
    server()

Client端代码:

python 复制代码
# 客户端代码
import socket

def client():
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    host='xxxxx'
    port = 12345
    client_socket.connect((host, port))

    while True:
        message = input('发送消息:')
        client_socket.send(message.encode('utf-8'))

        # 接收服务端消息
        server_message = client_socket.recv(1024).decode('utf-8')
        print(f"服务端消息:{server_message}")

    client_socket.close()

if __name__ == '__main__':
    client()

运行后的结果:

Client:

Server端:

host是主机的Device 名字

服务器与客户端建立 TCP 通信连接的交互过程:

UDP Server:

python 复制代码
# UDP服务器端代码
import socket

# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 绑定地址和端口
server_address = ('localhost', 12345)
server_socket.bind(server_address)

# 接收数据
data, client_address = server_socket.recvfrom(1024)
print(f"Received: {data.decode()} from {client_address}")

# 关闭套接字
server_socket.close()

UDP Client:

python 复制代码
# UDP客户端代码
import socket

# 创建套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 发送数据
message = "Hello, server!"
server_address = ('localhost', 12345)
client_socket.sendto(message.encode(), server_address)

# 关闭套接字
client_socket.close()

运行结果:

参考:Python网络编程实战指南:TCP协议探索与编程实例解析_python tcp-CSDN博客

深入探讨Python网络编程:从基础到高级应用-腾讯云开发者社区-腾讯云 (tencent.com)

相关推荐
迅猛龙办公室40 分钟前
python实现倒序输出数字
开发语言·python
不像程序员的程序媛8 小时前
检测网络的命令mtr详解
网络
天启HTTP8 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_8 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
全栈练习生10 小时前
AI Agent 沙箱
python·ai
hz5678910 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC11 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育11 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
AIgorithmGEEK11 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
SEO_juper11 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站