이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
컴퓨터는 다양한 프로토콜을 사용하여 서로 통신하며 가장 일반적인 프로토콜은 TCP(Transmission Control Protocol) 및 UDP(User Datagram Protocol)입니다.
TCP는 연결 지향 프로토콜입니다. 즉, 두 컴퓨터가 통신하려면 먼저 연결을 설정해야 합니다. 연결이 설정되면 양방향으로 데이터를 전송할 수 있습니다. TCP는 데이터가 전송된 순서대로 전달되고 손실되거나 손상된 데이터가 재전송되는 신뢰할 수 있는 프로토콜입니다.
UDP는 연결 없는 프로토콜로, 두 대의 컴퓨터가 먼저 연결을 설정하지 않고도 통신할 수 있음을 의미합니다. 데이터는 전송된 순서대로 전달되는 것을 보장하지 않으며 데이터가 손실되거나 손상된 경우 재전송되지 않습니다.
소켓은 두 컴퓨터 간의 통신을 위한 끝점입니다. 소켓은 소켓을 식별하는 데 사용되는 특정 포트 번호와 연관될 수 있습니다.
소켓 프로그래밍은 TCP 및 UDP 프로토콜의 기능을 활용할 수 있는 소프트웨어를 작성하는 방법입니다. 소켓 프로그래밍은 웹 서버, 파일 전송 응용 프로그램 및 채팅 응용 프로그램을 비롯한 다양한 응용 프로그램을 만드는 데 사용할 수 있습니다.
소켓을 생성하기 위해서는 먼저 소켓 주소 구조를 생성해야 합니다. 이 구조에는 주소 계열, 포트 번호 및 IP 주소를 포함하여 소켓을 식별하는 데 필요한 정보가 포함됩니다.
소켓 주소 구조를 만든 후에는 socket() 함수를 호출하여 소켓을 만들 수 있습니다. socket() 함수는 주소 패밀리, 소켓 유형 및 프로토콜을 인수로 사용합니다.
소켓을 생성한 후에는 connect() 함수를 호출하여 원격 소켓에 연결할 수 있습니다. connect() 함수는 소켓 및 소켓 주소 구조를 인수로 사용합니다.
원격 소켓에서 데이터를 수신하려면 먼저 소켓을 로컬 포트에 바인딩해야 합니다. 이것은 bind() 함수를 호출하여 수행됩니다. bind() 함수는 소켓 및 소켓 주소 구조를 인수로 사용합니다.
소켓을 로컬 포트에 연결하면 listen() 함수를 호출하여 들어오는 연결을 수신할 수 있습니다. listen() 함수는 소켓과 백로그를 인수로 사용합니다. 백로그는 주어진 시간에 대기할 수 있는 보류 중인 연결의 최대 수입니다.
listen() 함수를 호출한 후에는 accept() 함수를 호출하여 들어오는 연결을 수락할 수 있습니다. accept() 함수는 소켓과 연결 중인 클라이언트의 주소를 인수로 사용합니다.
연결이 설정되면 send() 및 recv() 함수를 사용하여 데이터를 보내고 받을 수 있습니다. send() 함수는 소켓, 전송할 데이터에 대한 포인터, 데이터 길이 및 플래그를 인수로 사용합니다. recv() 함수는 소켓, 데이터를 저장할 버퍼에 대한 포인터, 버퍼의 길이 및 플래그를 인수로 사용합니다.
데이터 송수신이 완료되면 close() 함수를 호출하여 연결을 닫을 수 있습니다. close() 함수는 소켓을 인수로 사용합니다.