【问题标题】:Socket Programming CLIENT SERVER chat application C++套接字编程 CLIENT SERVER 聊天应用程序 C++
【发布时间】:2016-04-30 20:18:26
【问题描述】:

我正在尝试为聊天应用程序设计一个客户端服务器模型。我是否需要有两个不同端口的不同套接字来发送和接收。实际上我有 3 个节点。1 个服务器和 2 个客户端(或从属)。消息传递客户端 1 的客户端 2 将始终通过服务器路由。我应该使用什么样的端口和套接字数量。请解释我使用 winsock 和 pthread API 在 C++ 中做所有这些事情。

【问题讨论】:

    标签: multithreading sockets server client chat


    【解决方案1】:

    通常您使用 TCP (SOCK_STREAM)。您只需要一个套接字即可进行传入连接。 bind(2) 到特定端口。你可以accept(2)任意数量的连接就可以了。

    多个线程可以在同一个套接字上等待(accept(2))。操作系统会将一个连接分派给一个线程;)

    对于每个传出连接,您必须创建一个新套接字,但您不必绑定它。操作系统会自行选择合适的 IP/端口。

    【讨论】:

    • 感谢您的指导,但您能否提供更多参考资料以更好地理解这一点。如果我可以研究一些其他参考资料(材料)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2020-10-25
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多