我有个问题 :
– 对于客户端发送的每条消息,服务器都会创建一个子进程(fork()),并且每个消息都由另一个子进程读取.
问题:
– 有什么方法可以擦除sockaddr_in结构,这样当服务器在无限循环中再次进入一个时,它会等待一个不同的客户端,每个孩子都会有一个不同的客户端地址.
– 对于客户端发送的每条消息,服务器都会创建一个子进程(fork()),并且每个消息都由另一个子进程读取.
问题:
– 有什么方法可以擦除sockaddr_in结构,这样当服务器在无限循环中再次进入一个时,它会等待一个不同的客户端,每个孩子都会有一个不同的客户端地址.
A part of the server code: struct sockaddr_in from; int main(int argc,char *argv[]) { int32_t stringLen; initSocket(); printf("waiting for a connection\n"); while (true) { int n; socklen_t length = sizeof(struct sockaddr_in); n = recvfrom(sock,&stringLen,sizeof(stringLen),(struct sockaddr *) &from,&length); if (n > 0) { int pid = fork(); printf("fork() pid = %d\n",pid); if (pid < 0) { error("handling request"); } if (pid == 0) { printf("Client connected...\n"); handle_request(stringLen); } cout << " PID : " << pid << endl; } } } Thank you !
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。