흐르는 시간의 블로그...


오늘 "socket operation on non-socket"에 관련된 문제를 검색해야할 일이 생겼다.


이곳에서 나름 비슷한 답을 얻은듯 싶다.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
클라이언트 만들다가 어이없는 삽질을 했다.

이유인듯... socket이 connect error : : Socket operation on non-socket 라고 에러가 나왔다.
해서 connect만 괜히 봤는데 사실 문제는 커넥트에서 사용한 socket 이었다;
이미 소켓생성에서 뭔가 문제가 생긴거였다. 사실 소켓은 잘 생성되었지만
if( (server_sockfd=socket(AF_UNIX,SOCK_STREAM,0)) < 0) ....
에서 server_sockfd 전체를 감싸는 () 가 없어서 그만.. 연산이 오른쪽왼쪽.. 알지? 괴상하게 되어버렸다; (0이 들어가 있었다; 실패..의미의 0)
x < 0 먼저 연산하고 그 결과가 server_sockfd에 들어가 버린꼴이 된거지 -_-;;;; 그러니 소켓 에러가 나온거다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

이외의 경우로 소켓이 갑작스럽게 덮어씌워져서 소켓 값이 바뀐 경우이거나...
생성 직후 끊긴 경우... 등... 다양한 경우가 있다.

결론은, 소켓 넘버로 사용되서는 안되는 소켓 넘버로 작업을 했다는 것이다.

이상이다.