나는 소켓이 네트워크 프로그램에서 널리 사용되고 있다는 것을 알고 있으며,이 코드를 사용하여 코드를 작성할 수있다. 그러나 나는 어떤 것을 이해할 수 없다 :socket의 정의는 무엇이며 왜 필요하며 어떻게 작동합니까?
1. 소켓이 필요한 이유는 무엇입니까?
응용 프로그램 계층 프로그램을 네트워크 계층별로 구분하는 데 사용되는 경우 응용 프로그램 이름이나 다른 고유 특성을 사용하지 않는 이유는 무엇입니까?
소켓은 표준입니까?
소켓은 리눅스 또는 다른 OS의 구조입니까?
2. 소켓 작동 방식은 무엇입니까?
bind, accept, listen, send와 같이 소켓 주변에는 많은 기능이 있습니다. 예를 들어 send()는 TCP로 dest에 메시지를 보내고 msg는 네트워크 계층에 메시지를 보내는 방법은 무엇입니까? 그것은 TCP 버퍼에 msg를 보냅니 까? 네트워크 계층 프로세스가 TCP 버퍼 데이터를 읽는 방법과 하위 계층 프로세스로 데이터를 보내는 방법
send(int sockfd, const void *buf, size_t len, int flags)
함수를 사용하면 첫 번째 arg 'sockfd'는 임의의 int와 같은 정의되지 않은 소켓이며, 결과는 무엇이며 왜 발생합니까? os가 처리하는 것은 무엇입니까?
이것은 너무 광범위한 질문입니다. 나는 당신이 "Unix Network Programming"이라는 책을 읽는 것이 좋을 것이라고 제안한다. – Barmar
왜 소켓에 관한 모든 질문을이 질문에 넣으려고합니까? 또한 질문에는 먼저 자신의 질문에 답하는 선의의 시도가 표시되지 않습니다. – jxh