소켓프로그래밍을 공부하면서 낯설었던 용어들이나 기능들의 의미를 몇 개 적어봤습니다.

(생각 날 때 마다 새로 공부한 내용을 추가하고있습니다. *오늘 6/9일)



1.  TCP/IP 프로토콜에서 소켓을 생성하는 함수는?

=> socket, accept 함수 

socket함수는 서버로 사용할 소켓을 생성하고, accept는 클라이언트와 연결하기 위해 사용할 소켓을 생성합니다.


2. UDP프로토콜에서 소켓을 생성하는 함수는?

=> socket함수

UDP는 연결 요청을 하거나 받는 listen, connect, accept함수를 사용하지 않습니다. 


3. INADDY_ANY의 의미

서버 프로그램 코드 작성 시 주소를 설정 할 때 입력받지 않고 INADDR_ANY를 많이 사용했습니다.

INADDR_ANY의 의미는 "서버프로그램에서 입력된 포트번호를 목적지로 하는 모든 연결요청을 서버가 처리하겠다" 라는 의미로 보면 됩니다.

그렇기 때문에 클라이언트에서는 쓸 필요가 없고 주로 서버에서 사용합니다.


4. main함수의 argc, argv[]의 의미

각각 다음을 의미합니다.

argc= 전달받은 인자 갯수

argv[]= 전달받은 문자열

argv[0] 실행파일명


우분투, 리눅스 등의 버클리소켓 환경에서는 argv[0]출력시 "./실행파일명" 으로 출력되고 윈속의 경우 "실행파일명"으로 출력됩니다.

윈속의 경우 별다른 설정을 하지않으면 프로젝트 이름이 출력됩니다.

서버에서 입력으로 127.0.0.1 9100 입력 시  argc는3, argv[1]="127.0.0.1", argv[2]="9100" 을 의미합니다.

서버에서 주소를 INADDR_ANY로 설정 후 포트번호만 입력했다면 argc는 2, argv[1]="9100"을 의미합니다.

argv의 타입이 char*형 배열이므로 입력한 ip주소와 포트번호는 모두 문자열이라 모두 별도의 변환 함수를 이용하여 숫자로 처리해야합니다.


5. 버클리소켓환경에서 컴파일 및 실행 하는 방법

https://jow1025.tistory.com/192


6. 윈속에서 서버-클라이언트 프로그램 실행하는 방법

1단계: 소스코드 작성 후 컴파일

2단계: 컴파일된 실행파일이 저장된 위치 확인

3단계: cmd창 열기-> 실행파일 위치로 위치 이동(cd명령어 사용)-> 실행파일명, ip주소, 포트번호 순으로 입력(띄어쓰기)

4단계: 한 프로젝트에서 서버와 클라이언트 실행파일 둘 다 만들어서 실행 할 때 

-> 서버코드 실행파일 보관 후 클라이언트 코드를 컴파일 후 실행파일명 변경 후 3단계 실행

5단계: cmd창 두 개 띄워서 각각의 서버, 클라이언트 프로그램 실행










+ Recent posts