Port: IP 주소 정보만을 가지고는 수신한 데이터 패킷을 메신저 프로그램에 전달할 것인지, 아니면 스트리밍 동영상 재생 프로그램에 전달해 줄 것인지 구분하지 못한다. 이를 구분하기 위한 것이 바로 Port이다. 32비트 IP주소로는 네트워크상에 존재하는 호스트를 구분하게 되고, 16비트 Port 정보로는 호스트 내에서 실행되고 있는 프로그램을 구분하게 된다. 이는 동일 호스트 내에서의 논리적인 할당일 뿐이다. 즉, 프로세서간 통신 또는 어떠한 프로세서에 데이터 패킷을 전달할 것인지에 결정하는데 사용된다. TCP 소켓과 UDP소켓은 Port를 서로 공유하지 않으므로 중복되어도 상관 없다. 주소 정보 구조체12345678typedef struct sockaddr_in { ADDRESS_FAMILY sin..
1int socket(int domain, int type, int protocol);cs 12345SOCKET WSAAPI socket( _In_ int af, _In_ int type, _In_ int protocol);csdomain : 생성할 소켓이 통신을 학 위해 사용할 프로토콜 체계 설정. 프로토콜 체계 정의 PF_INET IPv4 인터넷 프로토콜 PF_INET6 IPv6 인터넷 프로토콜 PF_LOCAL Local통신을 위한 UNIX 프로토콜 PF_PACKET Low level socket을 위한 인터페이스 PF_IPX IPX 노벨 프로토콜 PF_LOCAL >> 유닉스 계열의 시스템에서 시스템 내부의 프로세스들끼리 통신을 하기 위한 용도로도 사용 될 수 있음.type : 소켓이 데이터를 전송하..
파일 디스크립터 : 시스템이 만들어 놓은 것을 가리키기 좋게 하기 위해 시스템이우리들에게 건네주는 숫자에 지나지 않는다.--> 디스크립터란 용어 대신에 핸들이라는 표현도 함께 사용된다. 리눅스 [디스크립터] / 윈도우즈 [핸들] 윈도우즈와 리눅스의 입/출력 함수리눅스는 소켓이나 파일이나 모두 파일로 간주하기 때문에, 시스템 입/출력 함수은 write()와 read()함수를 사용해서 어디로든지 데이터를 전송하고 수신할 수 있다. 따라서, 소켓이든 파일이든 생성을 하면 파일 디스크립터가 리턴된다. 윈도우즈는 BSD 계열 유닉스 소켓을 참고로 하여 설계되었다. 따라서 BSD소켓과의 호환성을 위해 _read(), _write() 함수를 제공하고 있으나 거의 사용되지 않고, 또한 적절하지도 않다. 윈도우즈는 소켓..