错误:“传输端点已连接”

我正在尝试用C开发一个小型聊天服务器。

对于简单的聊天服务器,

  • (传输端点)===(套接字)?
  • 我是否必须为每个客户端使用一个套接字,还是可以为多个客户端重用套接字? 如果是这样,怎么样?
  • 有这样做的标准方法吗?
  • 有什么好的参考资料?

我能看到一些示例实现吗? 我必须使用gcc编译器和c语言进行此分配。

你需要一个套接字/客户端,不,你不能重用套接字。 如果您必须处理多个客户端,您可以:

  • 为每个客户端创建一个线程并使用阻塞I / O(最好使用超时)。
  • 创建单线程程序并使用select / poll / epoll / kqueue解复用并使用非阻塞I / O.
  • 使用异步I / O.

对于C套接字通信示例Unix网络编程书可能是最好的来源。 它有大量的示例程序和解释。

  1. (传输端点)===(套接字)?

没有。 “端点”表示带有端口号的IP地址。 套接字呈现一个“会话”,会话由两个端点组成,即本地端点(IP,端口)和远程端点(IP,端口)。

  1. 我是否必须为每个客户端使用一个套接字,还是可以为多个客户端重用套接字? 如果是这样,怎么样?

每个会话一个插槽。 这意味着服务器需要为每个远程端点(客户端)创建一个新套接字。 您可以在不再使用时重复使用套接字。 查找SO_REUSEADDR套接字选项。

  1. 有这样做的标准方法吗?

不确定你在问什么。 聊天服务或服务器/客户端模型的标准方式? 对于聊天服务,请查找IRC。 服务器/客户端编程模型已有详细记录。 你可以Google吧。

  1. 有什么好的参考资料?

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

现在我相信您了解错误消息的含义。