如何让TCP服务器接受多个客户端?

7

我目前已经设置了一个TCP服务器,可以接受客户端的连接并回显客户端输入的任何内容。如何使多个客户端连接到服务器并将他们的输入发送给所有客户端呢?

看起来我应该使用fork,但我不完全确定如何操作...

在服务器上,我应该从accept(或listen?)开始放置一个无限循环,当有新连接时就会分叉吗?然后在子进程中,我需要关闭以前的进程的套接字并连接到新的进程,但我还是不完全确定。

对于仅进行fork和套接字操作,伪代码将是什么样子?我的猜测:

while(1) //before connection or accept?

pid = fork()

if(pid==0)
  // open socket from client
  // run the rest of the code 
  // end process when client disconnects
else
  // close socket from client
2个回答

3

0
原来伪代码看起来像这样:

while(1)     //before listen

pid = fork;  //right after accept

if(fork>0)
  close sd2 ( sd2 = accept(....) )
  continue
else
  run the rest of the program

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接