2012-08-17 8 views
4

우분투에서 C++을 실행하십시오. 나는이 방법으로 소켓을 엽니 다소켓을 닫는 방법

socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW)) 

내가 사용의 끝 어떻게해야합니까? 일부 소켓은 프로그램이 실행되는 동안 사용되며 잠시 확인해야합니까? 소켓이 아직 존재하는지 확인 하시겠습니까?

+2

@Ulterior 501 명성에 어떻게 도달 했습니까? –

+0

저는 이런 종류의 프로그램에 익숙하지 않습니다. 이걸 용서해주세요. 나는 자바 녀석, 네트워크 프로그래밍을 다룰 필요가 없다. –

+0

무엇이 @ H2CO3 고유 이름? – Ulterior

답변

9

소켓은 파일 설명자에 close을 호출 할 때까지 존재합니다. 원시 IP 소켓을 가지고 있기 때문에 "살아있다"는 개념이 없습니다. 사용이 끝나면 닫으십시오.

+2

원시 소켓에서 살아있는 것에 대한 개념이없는 이유를 설명하거나 설명해 주시겠습니까 –

+7

@ user1495181 : 아니오 - * 왜 * 내가 왜 * 살아있는 것으로 생각해야하는지 설명하십시오. 소켓을 사용하면 네트워크에서 데이터를 보내고받을 수 있습니다. (TCP 스트림 소켓과 같은 특수 소켓은 연결 의미론을 구현하기 때문에 생동감이 있지만, * IP 위에 * 붙어 있습니다.) –

+2

닫기를 닫기 전에 호출 종료가 더 좋습니다. – kroiz

4

docs/man 페이지 에서처럼 socket()은 열린 파일 설명자를 반환하고 실패하면 -1을 반환합니다. 즉, 다른 파일 설명자를 닫을 때 닫아야 함을 의미합니다.

close(sockfd); 
관련 문제