[리눅스] AF_UNIX 삽질하기.
sp마지막 숙제였습니다. AF_UNIX를 사용하여 에코프로그램 만들기. 크큭. 제대로 삽질했습니다. 허허. 제일먼저 무엇으로 삽질을 하였느냐.. AF_UNIX와 AF_INET의 기본적인 구조체 차이였죠. AF_INET의 구조체는 뭐 인터넷이나 교재에 많이 나와있으므로 생략. -ㅅ- [귀찮은거지?!]

AF_UNIX는 헤더파일 부터 다르더군요. sys/un.h (양쪽에 꺽쇄괄호 해야하는데...ㅡㅜ) 에 포함이 되어 있습니다. 그리고 구조체에는 단 두개가 존재.

struc sockaddr_un
{
sa_family_t sun_family;
char sun_path[];
}


저기있는 path는 두 프로세스간의 통신링크입니다. 여기서 두번째 삽질. 두 프로세스간에 패스 이름은 똑같이 해줘야 합니다. [당연하잖아!!] 저는.. 여기서 바보같은 짓을 했었.. 쿨럭; 그리고 나서 반드시 반드시 실행후에는 링크를 지워줘야 합니다. 저처럼 무식하면 만약 path이름이 socket이었다면 일일히 프롬프트창에서 rm -rf socket을 열심히 때려 쳐줘야 합니다. ㅡㅜ 이런 무식을 안떨으려면!! 서버프로그램에서 unlink(path이름); 딱 요거 한줄만 가장 처음에 해주면 됩니다. 간단하죠? 엉엉 ㅠ.ㅠ

그리고 또하나.. 서버녀석이 fork를 사용해서 client를 돌릴수 있는데.. 으윽. 계속 서버가 살아있는 겁니다 client가 죽어도. 그래서 또 무식하게 kill 프로세스번호 를 열심히 쳐줬죠. 프로세스번호는 ./server& (<- 이렇게 뒤에다가 & 붙여서 실행시키면 백그라운드로 돌린다는 명령입니다.) 실행시키고 나면 프로세스 번호..라고 제가 추측하는 번호가 알아서 나오더군요. 무후후.. 그냥.. client에서 exit(0)해주고 server에서는 wait(0) 이것만 각각 마지막에 추가시켜주면 되는걸. 또 삽질했습니다. 하하하하. 바보.....

에에.. 마지막으로.. 코딩한 사람은 절대 보이지 않는다는 시무시무한 오타버그를 잡아준 우리 제리작희에게 감사하면서.. (fdout.txt를 fdout,txt라는 바보같은 콤마 실수를 하면서 며칠을 밤샜대요. 하하하하) 윽.....



흡연가의 길을 걷지 않고 무사히 한학기를 보낸것을 자축자축.
이제..
이제..
이제..



방학이다!!!!!!!!!!!



성적표를 빼돌리자... 성적표를 빼돌리자.. 성적표를 빼돌리자.. [중얼중얼중얼..]

by 개밥바라기 | 2005/06/26 12:15 | 리눅스 & 임베디드 | 트랙백 | 덧글(4)
트랙백 주소 : http://danggi.egloos.com/tb/1475776
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented at 2005/06/26 18:46
비공개 덧글입니다.
Commented by 천일야화 at 2005/06/27 13:09
빼돌리자!!!!!!!!!! 원츄ㅠ_ㅠ
Commented by 개밥바라기 at 2005/06/28 23:26
비공개 / 그렇습니다.
천일야화 / 빼돌리는 겁니다!! =ㅁ=
Commented by 이경오 at 2009/09/24 14:14
님 원추 ㅋㅋ
※ 로그인 사용자만 덧글을 남길 수 있습니다.