[완료] 쓰레드 생성이 안되는 이유가 뭐죠?
글쓴이: kkume / 작성시간: 화, 2009/02/10 - 10:09오전
while (1) { clnt_addr_size = sizeof(clnt_addr); rcv_len = recvfrom(serv_sock, rbuf, BUF_SZ, 0, (struct sockaddr *)&clnt_addr, (socklen_t *)&clnt_addr_size); printf("%s:%d: UDP Connected with %s:%d\n", __FILE__, __LINE__, inet_ntoa(clnt_addr.sin_addr), ntohs(clnt_addr.sin_port)); /* UDP Thread NOT Created. why?? */ /* Create Thread for new connection */ pthread_create(&thread, NULL, udpRecvThread, &serv_sock); pthread_join(serv_sock, &retval); } void *udpRecvThread(void *arg) { int sock = *((int *)arg); int i, rcv_len = 0; char rbuf[BUF_SZ] = {0}; printf("UDP receive thread created.\n"); rcv_len = read(sock, rbuf, sizeof(rbuf)); printf("rcv_len=%d, rbuf=[", rcv_len); for (i = 0; i < rcv_len; i++) { printf("%02X ", (unsigned char)rbuf[i]); } printf("\n\n"); close(sock); }
UDP 수신 부를 쓰레드로 따로 분리하여 처리 하려고 하는데, 쓰레드 함수로 넘어 가질 않네요..
뭐가 잘못 된 거죠?
UDP 수신부를 쓰레드로 따로 처리를 할려면 어떻게 해야 하는지요?
Forums:
man
man pthread_create
OTL
댓글달고보니, man
댓글달고보니, man pthread_join 도 옮겼어야했다는 아쉬움이 남는군요.
필히 보시길 바랍니다.
OTL
댓글 달기