c - 套接字编程将多个客户端连接到一台服务器并列出它们 C

标签 c sockets tcp network-programming pthreads

嗨,我对 TCP 套接字编程非常陌生,我想使用线程将多个客户端连接到一台服务器,并且一旦每个客户端连接到服务器。我们可以查看谁(客户端)连接到该服务器。

我正在考虑创建结构体来在 client.c 和 server.c 上保存客户端记录,一旦客户端连接,我们将使用 send(sock , (void *)&package , sizeof(struct USER) , 0 将结构传递给 server.c,在 server.c 中,一旦服务器接收到数据,我们也会创建相同的结构 recv(sock, (void *)&package, sizeof(struct USER), 0);服务器会将这些数据存储到struct中,但是如何?我尝试的结果是当我连接多个客户端时,一个名为User1,另一个名为User2,然后我尝试打印出strut结果是..

在客户端1上显示

USER[0]: User1
USER[1]: (NULL)

在客户端2上显示

USER[0]: (NULL)
USER[1]: User2

谁能帮忙

非常感谢

最佳答案

多个客户端连接到单个服务器是典型的情况。我不确定您想要从每个客户端传递到服务器的信息是什么,但如果是客户端的 IP 地址或网络设置之类的信息,则客户端在尝试连接时已将其提供给服务器。更深入地研究 TCP/IP 协议(protocol)可能是个好主意。有许多很好的教程和示例可供使用。

如果您尝试通过网络共享一些其他信息,一旦建立连接,您就可以通过套接字传递任何您想要的信息。这完全取决于您的应用程序正在执行的操作,但未指定。

关于c - 套接字编程将多个客户端连接到一台服务器并列出它们 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19406301/

相关文章:

c - 递归如何在没有转义序列的情况下停止

sockets - 编写一个程序来形成自己的IP数据包需要什么?

sockets - 如何从 Phoenix 框架中的套接字获取remote_ip?

tcp - TCP 连接中的 3 次握手

c++:简单的TCP服务器不接受来自客户端的数据

c - 关心参数sizeof(sockaddr_in)有什么用

c++ - c - 如何在资源管理器中打开选定的文件

c - 关于换行和 fgets() 的查询

centOS 上的 Python netadd 模块

java - 我需要同步 Sockets 的 ArrayList 吗?