我正在尝试使用python(可能稍后会在c)和TCP套接字进行本地网络聊天程序。结合服务器和客户端python套接字
我的意图是让服务器侦听当前计算机的传入消息地址,并将这些地址转发给客户端(我目前还不确定)。 客户端将是一个简单的gui,它可以将消息发送到本地连接上的活动服务器。实际上,这个设置将形成一个节点网络。
是否有可能使服务器和客户端在同一个应用程序中,最好不使用线程?我知道服务器会在侦听连接时暂停,因此gui无法响应。
如果我不能在同一个应用程序中同时有两个应用程序相互通信,但是线程看起来是一个更好的替代方案,因为我将使用两个过程。如果我有独立的应用程序,我怎么能从服务器发送字符串到客户端,以更新gui?
当我想要服务器向客户端发送消息时,会发生某种事件(在客户端)吗?
另外,如何检查服务器是否处于活动状态(可用并绑定到其计算机地址,等待消息)?
我的服务器/客户端关系模型是否合理?有什么建议么?
我检查了堆栈溢出类似的套接字问题,但没有找到任何具体解决我的问题。我可能错过了一些,所以请将我的注意力转向他们,如果他们发现有关。
这个问题看起来非常相似:Python socket server: listening to multiple clients,但是他们似乎没有每个客户端的'服务器'&。
注:我是新来的套接字&联网。
我也使用了套接字,但是我不确定如何处理这两个连接,并允许gui操作(发送)。 我打算有一个服务器和客户端的应用程序,因为如果我有一台服务器,运行它的计算机可能会睡觉,离开等,所以一些客户端将不得不承担责任。你能否详细说明或提供非阻塞模式的参考? (这是使用.select()?) – Ben
我会看看asyncio,谢谢你的信息。 – Ben
“这是使用.select()?”。是:select(),poll(),epoll()等。 – KromviellBlack