Python实现局域网UDP聊天室:固定端口与双向通信代码解析

落日邮差
落日邮差
发布时间:2026-10-13 | 1人浏览过
原创

本文介绍使用Python编写局域网内聊天室的方法,核心在于利用UDP协议并固定程序端口。通过创建Socket对象并绑定特定端口(如8889),实现消息发送与接收功能。代码包含发送端输入目标IP和端口,以及接收端监听指定端口的逻辑,支持在同一台电脑上通过不同端口配置实现自我对话测试。

本文分享了一个使用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)
    print("----------无敌聊天器----------")
    print("1.发送消息")
    print("2.接收消息")
    print("0.退出系统")
    print("*" * 50)

    user = input("请输入要执行的操作:")

    if user == "1":

      udp_send(udp_socket)

    elif user == "2":

      udp_recvfrom(udp_socket)

    elif user == "0":
      break

    else:

      print("输入有误")
  # 关闭套接字
  udp_socket.close()


if __name__ == "__main__":
  main()

以上就是本文的全部内容,希望能为各位的学习提供有益的帮助,同时也欢迎大家继续支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表