fgets과 socket에서 0x00

2018. 3. 8. 22:47

프로그램에서 fgets로 받는 경우 EOF(보통 -1) 또는 개행문자(\xa0)를 입력하지 않는 경우 계속 입력을 대기하기 때문에

끝에 \n을 보내주어야 한다. 만약 0x00807523을 보낸다고하면 \x23\x75\x80을 보낼텐데

이렇게 보내면 마지막에 \xa0이 붙어 \x23\x75\x80\xa0이 되므로 \x23\x75\x80\x00으로 보내야한다.


fgets는 EOF나 개행문자가 아니면 계속 받으므로... 0x00 (NULL)을 넣어줘도 받아먹는다


* 이것과 별개로 socket도 byte로 동작하기 때문에 00-ff 모두 보낼 수 있기 때문에 0x00이 NULL문자라 중간에 끓길것을 고려하지않아도된다.



참고로 입력해줄때 조심해야할것... 0x20이나 0xa0같은 경우 공백과 개행문자여서 넣어줄때 "나 '등으로 감싸주어야한다.

+ Recent posts