UDP Socket 에서 이해가 않가는 현상이 생겼습니다.
글쓴이: sozu / 작성시간: 월, 2005/01/31 - 1:16오후
UDP로 소켓 프로그래밍을 하는데 왜 이런지 이유를 찾지 못해서 질문을 합니다.
상황
0. 간단한 테스트용 어플 제작중입니다.
1. 하나의 UDP 소켓으로 Send/Recv를 모두 수행합니다.
2. 하나의 Thread에서는 Event가 있을때마다 Send를 수행합니다.
3. 다른 Thread에서는 Recv 함수가 블럭되어 받기를 대기하고 있습니다.
현상
- Send에서 현재 바인딩되어있는 소켓이 없는 Ip/port로 전송을 하면 다른 Thread에 있는 Recv에서 Error(-1)를 리턴합니다.
상황 1. 에서 Send/Recv를 다른 소켓으로 하면 잘됩니다.
지금까지 프로젝트 하면서, 대부분 하나의 소켓으로 처리했었습니다.
문제점이 무엇인지 알려주셨으면 합니다^^
Forums:
Recv에서 -1을 반환했을 때의 errno 값을 보시는게 좋을 것 같습
Recv에서 -1을 반환했을 때의 errno 값을 보시는게 좋을 것 같습니다.
Send 실패시 SIGPIPE로 인해 인터럽트가 걸리지 않았을까 합니다.
두 쓰레드가 같은 소켓을 공유하고 있는 건 확실하죠?interru
두 쓰레드가 같은 소켓을 공유하고 있는 건 확실하죠?
interrupted system call 문제일 수도 있습니다.
댓글 달기