socket 프로그램시 질문입니다
글쓴이: izlley / 작성시간: 일, 2003/05/04 - 3:35오후
tcp통신을 하는도중에..
우선 connect를 해서 서로 접속을 했습니다.
그다음에 client의 요청에 server는 sockfd에다 요청에대한 응답을 write했습니다.
그다음에 저는 client상에서 sockfd을 통해서 server의 결과를 buf로 read한후
Quote:
while((n=read(sockdf, buf, 30) > 0)
write(stdout, buf, n);
이렇게 하면 당연히 읽는 즉시 화면에다 출력을 해줄주알았습니다.
이상해게도 처음에는 화면에 잘 출력 되었습니다. 하지만 프로그램을 종료한후에(ctrl+c) 다시 실행시켜보니 아무것도 출력이 되지 않았습니다.
처음에는 read시 error가 났는줄 알고 확인을 해보니 read는 정상적으로
돼서 buf안에는 string들이 저장돼있었습니다. 하지만 write시에 이상하게도
화면에는 출력이 되지 않았습니다..
그래서 한면 write를 쓰지 않고 fputs(buf, stdout)을 해보니 출력이 되는것이었 습니다..
write()나 fputs()이나 low레벨에선 같은 함수인거라고 생각이드는데.. 왜 write시에 출력이 안됐는지 의문입니다..
그리고 또 이상한것은 이프로그램을 fix할려다 안돼서 재부팅을 하면 될려나 하고
재부팅을 해봤는데 부팅시에 무슨 IRQ.... socket 0000033? 뭐이런 error가 뜨는것 같았습니다..;
제가 뭘 잘못했는지 잘 모르겠네여.. 왜 화면에다 출력이 안됐는지도 의문입니다. :oops:
가르쳐 주시면 감사드리겠습니다...
Forums:
Re: socket 프로그램시 질문입니다
i am sorry
it was my minor mistake;;
write(int fd <---- it's type is not file* but int! ...);
sorry;; (i cant write in Korean now, sorry about this)
댓글 달기