python聊天室详细教程_python编写简易聊天室实现局域网内聊天功能

本文实例为大家分享了python实现局域网内聊天功能的具体代码,供大家参考,具体内容如下

功能:

可以向局域网内开启接收信息功能的ip进行发送信息,我们可以写两段端口不同的代码来实现在一台电脑上与自己聊天.

关键点:

要想实现此功能必须将程序的端口固定

from socket import *

def udp_send(udp_socket):

# 发送消息 接收用户输入内容

send_mes = input("请输入发送内容:")

# 接收用户输入ip

ip = input("请输入ip地址:")

# 接收用户输入端口号

port = int(input("请输入端口号"))

# 发送消息 内容进行编码

udp_socket.sendto(send_mes.encode("gbk"), (ip, port))

def udp_recvfrom(udp_socket):

# 接收消息 最多4096个字节

get_mes, get_ip = udp_socket.recvfrom(4096)

print("收到来自%s的消息:%s" % (str(get_ip), get_mes.decode("gbk")))

def main():

# 创建套接字

udp_socket = socket(AF_INET, SOCK_DGRAM)

# 设置固定端口

udp_socket.bind(("", 8889))

while True:

print("*" * 50)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个多人聊天室需要涉及到网络编程以及并发编程。在Python中,可以通过TCP协议来实现多人聊天室。 下面是一个跨主机的Python+TCP实现多人聊天室的简单示例代码: ```python import socket import threading # 服务器IP地址和端口号 SERVER_HOST = '0.0.0.0' SERVER_PORT = 8000 # 客户端列表 clients = [] def broadcast(message): """ 广播消息给所有客户端 """ for client in clients: client.send(message) def handle_client(client): """ 处理客户端连接 """ while True: try: message = client.recv(1024) if message: print(f"[{client.getpeername()}]: {message.decode('utf-8')}") message_to_broadcast = f"[{client.getpeername()}]: {message.decode('utf-8')}".encode('utf-8') broadcast(message_to_broadcast) else: remove(client) except: remove(client) def remove(client): """ 客户端断开连接 """ if client in clients: clients.remove(client) client.close() if __name__ == "__main__": # 创建服务器套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((SERVER_HOST, SERVER_PORT)) server_socket.listen() print(f"[*] Listening on {SERVER_HOST}:{SERVER_PORT}") while True: client_socket, client_address = server_socket.accept() print(f"[*] Accepted connection from {client_address[0]}:{client_address[1]}") clients.append(client_socket) client_thread = threading.Thread(target=handle_client, args=(client_socket,)) client_thread.start() ``` 在上述代码中,我们使用了Python的socket模块来创建TCP服务器和客户端套接字,使用了Python的threading模块来进行并发处理。我们定义了一个`broadcast`函数来广播消息给所有客户端,定义了一个`handle_client`函数来处理客户端连接,定义了一个`remove`函数来处理客户端断开连接。 在`handle_client`函数中,我们使用了一个死循环来持续处理客户端发送的消息。当接收到消息时,我们使用`broadcast`函数将该消息广播给所有客户端。当客户端断开连接时,我们使用`remove`函数将该客户端从客户端列表中移除。 在`__main__`函数中,我们创建服务器套接字,监听客户端连接。当有新的客户端连接时,我们将其添加到客户端列表中,并使用一个新的线程来处理该客户端连接。 这是一个简单的跨主机Python+TCP实现多人聊天室的示例代码,你可以在此基础上进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值