socket() 함수에 대하여
글쓴이: ryuts / 작성시간: 화, 2009/01/06 - 11:47오전
UNIX에서 소켓을 생성하여 로컬서버(클라이언트와 같이 하드웨어에 있는 서버)로
연결을 시도하는데 2분마다 접속을 했다 끊었다 하게 만들었거든요.
그런데 이상하게 잘 돌아가다가(하루나 이틀 많게는 4~5일까지도)
항상
if((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
이 코드 전에 바로 로그를 출력하고 제가 실행한 프로세스가 멈춰버립니다.
죽으면 다시 살리겠끔 해놨기 때문에 죽은건 아닌거 같아요. 프로세스
종료되지는 않는데, 멈춰버리는 그런 현상 같은데요. 일종의 데드락 비슷하게..
혹시 이런 현상 겪어 보신분 계신가요? 소켓 생성/해제는 확실히 해줘서 기하 급수적으로
소켓이 늘어나거나 그러지는 않습니다.
다만, 걸리는게 로컬서버라서 좀 뭔가 특이사항이 있을거 같은데 잘 몰라서 질문 올려봅니다.
Forums:
.....
음.. 단순히 로컬에서만 구현을 한다면...
소켓을 열때 AF_INET 말고 PF_LOCAL를 쓰는게 좋지 않을까요?
아니면 PIPE를 사용한다든지... ;;
뭐 아는게 별로 없어 이정도 밖에 답변을 못 드리겠네요.
음 냐냐~
답변 감사드립니다.
일단은 바꿔서 해보고 있기는 한데... 데이터 전송이 안되네요.. ㅠ_ㅠ
fd = socket(PF_LOCAL, SOCK_STREAM, 0);
커넥트는 되는거 같은데...
write할때 에러가 계속 나네요 ㅠ_ㅠ
댓글 달기