C/TCPIP 소켓 프로그래밍(윤성우 저) 23

TCP/IP 소켓 프로그래밍 1장 내용확인 문제

1.네트워크 프로그래밍에서 소켓이 담당하는 역할은 무엇인가? 그리고 소켓이라는 이름이 붙인 이유는 어디에 있는가? >소켓은 물리적으로 연결되어있는 호스트간 데이터 송수신에 필요한 프로토콜로부터 프로그래머를 자유롭게 하는 데이터 송수신의 매개체이다. 소켓은 인터넷이라는 거대한 네트워크 망으로의 연결 도구로 사용되기 때문에 소켓이라는 이름이 붙게 된 것이다. 2. 서버 프로그램에서는 소켓생성 이후에 listen 함수와 accept 함수를 차례대로 호출한다. 그렇다면 이들의 역할은 각각 무엇인지 비교해서 설명해보자 >listen 함수가 호출되면 소켓은 연결요청이 가능하게 된 상태이다. 그러나 실제 연결이 완료되려면 accept 함수가 호출되어야한다. 3.리눅스의 경우 파일 입출력 함수를 소켓 기반의 데이터 입..

리눅스 기반 서버, 클라이언트 예제

윈도우에서는 winsock2.h 헤더파일을 사용하는 것과 달리 리눅스는 세개의 헤더파일을 사용합니다.1. unistd.h2. arpa/inet.h3. sys/socket.h 앞서 리눅스는 내부적으로 소켓도 파일로 취급하기 때문에, 파일을 생성하건 소켓을 생성하건 파일 디스크립터가 반환됩니다.마찬가지로 윈도우에서도 시스템 함수의 호출을 통해서 파일을 생성할 때 '핸들(handle)'이라는 것을 반환한다.즉, 리눅스에서의 파일 디스크립터와 윈도우의 핸들은 함수만 다르지 거의 같다고 볼 수 있다.하지만 윈도우 같은 경우 리눅스와는 달리 파일 핸들과 소켓 핸들을 구분하고 있습니다.(가장 큰 차이점) 서버 프로그램#include #include #include #include #include #include vo..

윈도우 기반 서버, 클라이언트 예제

예제를 작성하기 전에 TCP/IP 프로그래밍을 하기 위해서는 winsock2.h 헤더파일이 포함되어야 합니다. 이를 위해서는 ws2_32.lib 라이브러리를 링크시켜야 합니다. (프로젝트 '속성'->'구성 속성'->'입력'->'추가 종속성'->ws2_32.lib 추가) 이를 마치고 나면 프로그램을 작성하고 실행하시면 되는데 우선 서버 프로그램 예제부터 실행하시고 클라이언트 예제를 실행하셔야 정상적으로 작동합니다. #include #include #include void ErrorHandling(char *message); int main(int argc, char *argv[]) { WSADATA wsaData; SOCKET hServSock, hClntSock; SOCKADDR_IN servAddr, ..