我正在嘗試使用python(可能稍後會在c)和TCP套接字進行本地網絡聊天程序。結合服務器和客戶端python套接字
我的意圖是讓服務器偵聽當前計算機的傳入消息地址,並將這些地址轉發給客戶端(我目前還不確定)。 客戶端將是一個簡單的gui,它可以將消息發送到本地連接上的活動服務器。實際上,這個設置將形成一個節點網絡。
是否有可能使服務器和客戶端在同一個應用程序中,最好不使用線程?我知道服務器會在偵聽連接時暫停,因此gui無法響應。
如果我不能在同一個應用程序中同時有兩個應用程序相互通信,但是線程看起來是一個更好的替代方案,因爲我將使用兩個過程。如果我有獨立的應用程序,我怎麼能從服務器發送字符串到客戶端,以更新gui?
當我想要服務器向客戶端發送消息時,會發生某種事件(在客戶端)嗎?
另外,如何檢查服務器是否處於活動狀態(可用並綁定到其計算機地址,等待消息)?
我的服務器/客戶端關係模型是否合理?有什麼建議麼?
我檢查了堆棧溢出類似的套接字問題,但沒有找到任何具體解決我的問題。我可能錯過了一些,所以請將我的注意力轉向他們,如果他們發現有關。
這個問題看起來非常相似:Python socket server: listening to multiple clients,但是他們似乎沒有每個客戶端的'服務器'&。
注:我是新來的套接字&聯網。
我也使用了套接字,但是我不確定如何處理這兩個連接,並允許gui操作(發送)。 我打算有一個服務器和客戶端的應用程序,因爲如果我有一臺服務器,運行它的計算機可能會睡覺,離開等,所以一些客戶端將不得不承擔責任。你能否詳細說明或提供非阻塞模式的參考? (這是使用.select()?) – Ben
我會看看asyncio,謝謝你的信息。 – Ben
「這是使用.select()?」。是:select(),poll(),epoll()等。 – KromviellBlack