본문 바로가기
코스웨어/13년 스마트컨트롤러

0711-수업정리 문예진

by 알 수 없는 사용자 2013. 7. 11.
728x90
반응형

브로드 캐스트 - 안에서만 메세지 전송이 가능 ,IP주소를 A,B,C,D클래스로 봤을 때 D클래스만 변경된다.


멀티 캐스트  - 밖으로도 메세지 전송이 가능, TTL을 지정해야 한다.



<통신버퍼의 유무확인과 버퍼크기 셋팅>

-소켓을 생성하고,

getsockopt 함수로 버퍼의 크기를 확인한다.

getsockopt 의세번째인자는 send or receive buffer의 사이즈이고 ,네번째 인자는 버퍼사이즈를 담고 있는 버퍼를 적어 준다.

그리고 printf로 버퍼의 사이즈를 찍어주면 

버퍼의 크기가 나온다.


-setsockopt는 버퍼의 크기를 변경할 수 있다.

임시 변수를 선언해 놓고 ,그 변수에 kbyte 단위를 적어놓고  함수의 버퍼사이즈 인자 부분에 이 임시버퍼를 넣으면

그 다음줄에 출력 되는 send or receive 버퍼의 크기가 달라져 있다.

<소스>



<실행 모습>









<문자로 된 인터넷 사이트 주소 접속 원리>

인터넷 주소를 쳤을 때 바로 접속이 되는 것이 아니라 gethostbyname이라는 함수를 거친 다음에, 

이 함수가 IP주소를 반환하면 그 주소를 다시 찾아들어가서 사이트에 접속이 되는 것이다.

-밑의 소스를 보면 실행파일 이름과 IP주소를 알고 싶은 홈페이지 주소를 문자로 적으면 

DNS서버에 호스트의 정보를 긁어와서 mynet이라는 원래 디파인 되어 있는 구조체에 넣는다.


-printf문으로 mynet구조체에 저장된 사이트 이름이 화면에 뜨고

IP값이 뜨게 되는 것이다.




<소스>

<실행된 화면 >



<패킷 건져 올리기 -함수 안쓰고>

-소켓생성은 하되 헤더는 비워놓게 셋팅

-랜카드의 이름을 구조체에 복사

-ioctl함수를 이용하여 랜카드의 찾은 정보를 구조체 안에 넣는다 

-아직 소스 작성중........................

-마지막  write  함수는 화면지우는 함수 




728x90