【问题标题】:Threading an UDP server线程化 UDP 服务器
【发布时间】:2015-04-11 14:55:00
【问题描述】:

我想用 Python 做一个多线程的 UDP 服务器。

目的是能够将多个客户端连接到服务器(不是套接字连接,而是用户名和密码),对每个客户端进行操作并在服务器上执行一些操作。全部同时进行。

我对所有不同类型的线程有点困惑,我不知道该使用什么。

更清楚地说,这正是我想要同时做的事情:

  • 等待客户端第一次发送数据并在数据库中注册他们的ip
  • 通过等待“已连接”客户端发送数据报并对其做出响应来处理它们
  • 能够与服务器合作。例如,在我的数据库中更改客户的密码

【问题讨论】:

  • “不是套接字连接而是用户名和密码”是什么意思?
  • 显示你迄今为止尝试过的内容。
  • 是的,我想我说错了。实际上,我知道 UDP 套接字之间没有真正的连接。但是客户端发送给我的服务器的第一条消息是它的用户名和密码,我的服务器只会验证它是否与我的数据库相对应

标签: python multithreading udp server


【解决方案1】:

我想看看一个擅长处理异步 io 的框架。这个想法是在您收到数据之前,每个套接字都没有一个线程并阻塞,而是让一个线程一次处理多个套接字。如果您希望您的服务器处理许多客户端,这可以很好地扩展。

例如:

【讨论】:

  • 是的,这几乎就是目的。更清楚地说,这正是我想要同时做的事情: - 等待客户端第一次发送数据并在数据库中注册他们的 ip - 通过等待“连接”客户端发送数据报并响应来处理对他们 - 能够与服务器一起行动。例如,在我的数据库中更改客户的密码
  • 我使用 gevent 编写了一个示例 UDP 聊天客户端/服务器。没什么花哨的,可能充满了错误,但它可能会给你一些想法:github.com/andrelaszlo/gevent-chat
猜你喜欢
  • 2011-03-18
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2015-01-09
相关资源
最近更新 更多