server端代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "multiple_socket.h"
int main()
{
int server_sockfd,client_fd;
struct sockaddr_in server_addr, client_addr;
socklen_t server_len, client_len;
/* Create an unnamed socket for server */
server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
/* Name the socket */
server_addr.sin_family = AF_INET;
server_addr.sin_port = SIN_PORT;
server_addr.sin_addr.s_addr = inet_addr(LOOPBACK);
server_len = sizeof(server_addr);
bind(server_sockfd, (struct sockaddr *)&server_addr, server_len);
/* Create a connection queue & wait for clients */
listen(server_sockfd, SOCKET_QUEUE_SIZE);
signal(SIGCHLD, SIG_IGN);
while(1) {
char ch;
if(0 == fork()) {
/* Accept a connection */
client_len = sizeof(server_addr);
client_fd = accept(server_sockfd,
(struct sockaddr *)&client_addr, &client_len);
read(client_fd, &ch, 1);
sleep(SLEEP_TIME);
ch++;
write(client_fd, &ch, 1);
close(client_fd);
exit(0);
}
}
return 0;
}