현재 인터넷을 통해 C 언어로 클라이언트/서버 응용 프로그램을 만들고 있습니다. 서버는 클라이언트로부터 새로운 연결을 계속 수신합니다. 현재 클라이언트를 청취하고 있지만 일단 클라이언트가 연결되면 서버는 계속 클라이언트를 청취하지 않습니다. 다음은 클라이언트와 연결할 서버 측 코드를 묘사 : 나는 가정하고클라이언트/서버 C 연결
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in sockaddr, cliaddr;
bzero(&sockaddr, sizeof(struct sockaddr_in));
bzero(&cliaddr, sizeof(struct sockaddr_in));
sockaddr.sin_family = AF_INET;
sockaddr.sin_addr.s_addr = INADDR_ANY;
sockaddr.sin_port = ntohs(atoi(argv[1]));
if(bind(sockfd, (struct sockaddr *) &sockaddr, sizeof(sockaddr)) <0) {
printf("error binding socket: %d\n", errno);
exit(1);
}
printf("binded to %d : %d\n", sockaddr.sin_addr.s_addr, htons(sockaddr.sin_port));
listen(sockfd,5);
socklen_t clilen = sizeof(cliaddr);
int newsockfd = accept(sockfd, (struct sockaddr *) &cliaddr, &clilen);
if (newsockfd < 0)
error("ERROR on accept");
printf("server connected to %d:%d\n", cliaddr.sin_addr.s_addr, htons(cliaddr.sin_port));
내가 일단 연결이 설정된 포크됩니다 스레드의 형태를 만들어야합니다. 하지만 난
귀하의 회신에 감사드립니다 ... 귀하가 지적한 다음 점에 대해 더 자세히 살펴 보겠습니다 – user1317277