int main(int argc, char *argv[]) { int socket_desc; socket_desc = 소켓(AF_INET, SOCK_STREAM, 0); 함수 socket()은 소켓을 만들고 다른 함수에서 사용할 수 있는 설명자입니다. 위의 코드는 다음과 같은 속성으로 소켓을 만들 것입니다 우리는 이미 소켓을 여는 방법을 배웠습니다. 그래서 다음 것은 그것을 바인딩하는 것입니다. 리눅스의 소켓 API는 진화한 bsd/유닉스 소켓과 유사합니다. 시간이 지남에 따라 API는 몇 곳에서 약간 달라졌습니다. 그리고 지금 새로운 공식 표준은 bsd 소켓과 같은 posix 소켓 API입니다. 평신도의 용어에서 소켓은 네트워크의 두 시스템 간의 통신의 종점입니다. 좀 더 정확하게 말하면 소켓은 하나의 시스템에서 IP 주소와 포트를 조합한 것입니다. 따라서 각 시스템에서 네트워크를 통해 다른 시스템의 소켓과 상호 작용하는 프로세스에 대한 소켓이 존재합니다. 원격 시스템의 로컬 소켓과 소켓의 조합은 `4 튜플` 또는 `4 튜플`으로도 알려져 있습니다. 서로 다른 시스템에서 실행되는 두 프로세스 간의 각 연결은 4튜플을 통해 고유하게 식별할 수 있습니다.

수신 대기 중인 소켓, sockfd에 대한 보류 중인 연결 큐에서 첫 번째 연결 요청을 추출하고, 연결된 새 소켓을 만들고, 해당 소켓을 참조하는 새 파일 설명기를 반환합니다. 이 시점에서 클라이언트와 서버 간에 연결이 설정되고 데이터를 전송할 준비가 됩니다. 좋은 튜토리얼! 이 소켓 통신 차단 또는 비차단입니까? 감사. 유닉스 도메인의 소켓 주소는 기본적으로 파일 시스템의 항목인 문자 문자열입니다. 이 자습서의 예제에서는 TCP 프로토콜을 사용 하 여 인터넷 도메인에서 소켓을 사용 합니다. 코드를 사용하여 소켓을 만지작입니다. 현재 나는 그것을 수정했습니다 :이 튜토리얼은 유닉스 소켓의 데이터 교환 기능을 학습에 관심이있는 모든 사람들을 위해 설계되었습니다. SOCK_STREAM 유형의 소켓 외에도 UDP 프로토콜을 나타내는 SOCK_DGRAM이라는 또 다른 유형이 있습니다. 이 유형의 소켓은 연결되지 않은 소켓입니다. 이 튜토리얼에서 우리는 SOCK_STREAM 또는 TCP 소켓에 충실한다.

나는 연결 (socket_desc, (구조형 sockaddr *)&서버, sizeof (서버))에 대한 -1의 반환 값을 얻고있다; 매번.