簡體   English   中英

錯誤:“傳輸端點已連接”

[英]Error : “Transport endpoint is already connected”

我正在嘗試使用C開發小型聊天服務器。

對於簡單的聊天服務器,

  • (傳輸端點)===(套接字)?
  • 我必須每個客戶端使用一個套接字,還是可以將一個套接字重用於多個客戶端? 如果是這樣,怎么辦?
  • 有這樣做的標准方法嗎?
  • 有沒有好的參考資料?

我可以看到一些示例實現嗎? 必須為此使用gcc編譯器和c語言。

您需要一個套接字/客戶端,沒有,您不能重用套接字。 如果必須處理多個客戶,則可以:

  • 每個客戶端創建一個線程並使用阻塞的I / O(最好是超時)。
  • 創建單線程程序,並使用select / poll / epoll / kqueue進行解復用,並使用非阻塞I / O。
  • 使用異步I / O。

對於C套接字通信示例Unix網絡編程書可能是最好的資料。 它具有大量示例程序和說明。

  1. (傳輸端點)===(套接字)?

沒有。 “端點”是指帶有端口號的IP地址。 套接字表示一個“會話”,會話由兩個終結點組成,本地終結點(IP,端口)和遠程終結點(IP,端口)。

  1. 我必須每個客戶端使用一個套接字,還是可以將一個套接字重用於多個客戶端? 如果是這樣,怎么辦?

每個會話一個套接字。 這意味着服務器需要為每個遠程端點(客戶端)創建一個新的套接字。 您可以在不再使用套接字時重用它。 查找SO_REUSEADDR套接字選項。

  1. 有這樣做的標准方法嗎?

不知道你在問什么。 聊天服務或服務器/客戶端模型的標准方法? 對於聊天服務,請查找IRC。 服務器/客戶端編程模型有詳細記錄。 你可以谷歌。

  1. 有沒有好的參考資料?

http://beej.us/guide/bgnet/

現在,我相信您了解錯誤消息的含義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM