socket的即时消息系统

时间:2014-07-30 13:13:47

标签: sockets multiprocessing

我想通过socket实现一个简单的即时消息系统。  我应该有一个公交系统(或转发系统),客户A希望向客户B发送消息。

我的服务器:

 sock_server = socket();
// I have shared memory to maintain a friendlist, shared by all child process
shared_friendlist[100];
...
while(1)
{
    sock_client = accept();
    pid_t pid = fork();
    if(pid==0)  // one child process for one connection req
    {

    }
    else
    {

    }

}

首先我认为每个连接都会保留一个唯一的sock_client(accept()返回值),我发现我完全错了。袜子对于(子过程)而不是整个系统是唯一的。 所以我想我不能发这样的消息;

一个子进程(sock_client_a):

read(sock_client_a,buffer_message,sizeof(buffer_message));
write(sock_client_n,buffer_message,sizeof(buffer_message));

因为子进程不知道sock_client_b。 我怎么解决这个问题? 非常感谢。

0 个答案:

没有答案