소켓fd가 같은게 리턴될수도 있나요??
글쓴이: morzio / 작성시간: 목, 2015/01/29 - 11:36오후
안녕하세요. 도움 말씀좀 얻으려고 왔습니다.
이번에 리눅스 프로그래밍을 처음 해보고 있는데요
서버소켓과 클라이언트소켓을 한 프로세스에서 구현하고있습니다.
물론 한 프로세스에서 서로접속하는 형태는 아니구요...
서버소켓에 붙는 클라이언트는 다른 피씨들이고
클라이언트소켓에서 접속하는 서버도 다른 서버입니다.
그런데 문제는..
서버소켓에 접속되는 클라이언트의 소켓fd가 5,6,7. 이런식으로 늘어나는데요
다른 서버로 접속하는 클라이언트소켓이 접속되지 못하고 재접속을 할때
자꾸 5번소켓fd가 이미 접속되었음에도 불구하고
5번fd를 할당받으면서 기존 서버소켓에 접속된 클라이언트를 끊어버립니다.
그러면서 뭔가 완전꼬여버리는 듯 합니다.
서버소켓쪽은 select로 클랑이언트의 접속여부를 판단하고
다른 서버에 붙는 클라이언트소켓은 별도의 쓰레드에서 생성되구요
제 질문글이 설명이 잘 되었나 모르겠네요..
요약을 하자면 이미할당된 소켓fd가 socket () 함수를 썼을때 다시 할당된다는 얘긴데 이럴수가 있나요??
Forums:
댓글 달기