전체 글 2411

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

1. TCP/IP 프로토콜 스택을 4개의 계층으로 구분해 보자. 그리고 TCP 소켓이 거치는 계층구조와 UDP 소켓이 거치는 계층구조의 차이점을 설명해보자. >TCP는 LINK 계층IP 계층TCP 계층Application 계층의 구조를 갖는다 UDP는 LINK계층IP 계층UDP 계층Application 계층의 구조를 갖는다 2. TCP/IP 프로토콜 스택 중에서 LINK 계층과 IP 계층이 담당하는 역할이 무엇인지 설명해보자. 그리고 이 둘의 관계도 함께 설명해보자. >LINK 계층은 LAN, WAN, MAN 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역으로, 물리적인 성격의 표준을 정의하고 있는 계층으로 정리할 수 있다. 반면 IP 계층은 인터넷을 통한 데이터 전송의 표준을 정의하고 있는 계층이..

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

1. IP주소 체계인 IPv4와 IPv6의 차이점은 무엇인가? 그리고 IPv6의 등장배경은 어떻게 되는가? >IPv4는 4바이트 주소체계, IPv6는 16바이트 주소체계이다. IPv4 기반의 IP주소 고갈을 염려하여 IPv6가 등장하게 되었다. 2. 회사의 로컬 네트워크에 연결되어 있는 개인 컴퓨터에 데이터가 전송되는 과정을, IPv4의 네트워크 ID와 호스트 ID, 그리고 라우터의 관계를 기준으로 설명하여라. >데이터 전송과정의 첫번째는 속한 목적지가 속한 네트워크로의 데이터 전송이다. 이 때 사용되는 것이 IP 주소 중의 네트워크 ID라고 불리는 부분이다. 네트워크 ID란 네트워크를 구분할 수 있는 주소 정보로써 이를 통해서 해당 네트워크로 데이터가 전송된다. 그리고 이렇게 전송된 데이터는 네트워크를..

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

1.프로토콜이란 무엇을 의미하는가? 그리고 데이터의 송수신에 있어서 프로토콜을 정의한다는 것은 어떠한 의미가 있는가? >프로토콜은 통신의 방법을 약속해 놓은 통신규약을 의미한다. 따라서 프로토콜을 정의한다는 것은 데이터 송수신에 필요한 약속을 정의한다는 의미이다. 2.연결지향형 소켓인 TCP 소켓의 특성 세가지를 나열하라 >a. 중간에 데이터가 소멸되지 않고 목적지로 전송된다. b. 전송 순서대로 상대 호스트로 데이터가 수신된다. c. 전송되는 데이터의 경계가 존재하지 않는다.(여러 차례 나누어서 데이터를 보내도 한번에 데이터를 수신할 수 있다.) *반면, UDP 소켓 같은 경우 여러 차례 나누어서 데이터를 보내면 여러 차례 나누어서 데이터를 수신해야 한다. (전송되는 데이터의 경계가 존재) 3. 다음 ..

인디 퍼즐 협동 게임 ibb&obb(ibb and obb) 소개

제가 처음으로 리뷰할 게임은 스팀에서 다운 받을 수 있는 이라는 게임입니다. (경고:참을성이 없거나, 쉽게 포기하거나, 승부욕이 없는 사람들은 이 게임 비추입니다) 이 게임은 요즘 인기가 있는 오버워치, 롤 같은 게임과 달리 단 두명이서 할 수 있는 게임입니다. (싱글플레이도 가능하긴 하지만 컨트롤도 어렵고 재미도 반감될 듯 합니다) 은 윈도우에서만 플레이 가능한 게임입니다. (Mac에서는 Parallels 혹은 Bootcamp를 사용할 경우 플레이 가능합니다. 출처) 또한 시스템 요구사항도 매우 낮아서 웬만한 사람들은 다 플레이 가능할 것입니다! 운영체제 Windows XP 프로세서 2 GHz Intel Dual Core 메모리 512 MB RAM 그래픽 OpenGL 2.0 compatible card..

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, ..

vim 에디터와 자동 들여쓰기 설정

gcc 컴파일러까지 설치가 되었다면 이제 컴파일할 코드를 작성하는 에디터가 필요합니다. gcc 컴파일러와 마찬가지로 아마 대부분 우분투에 기본으로 설치가 되어 있겠지만 혹시 설치 되어있지 않은 분들은sudo apt-get install vim을 작성하면 된다.저 같은 경우는 이미 설치되어있기 때문에 0 newly installed라고 뜹니다. vim 에디터를 다운받았으면 테스트 삼아 코드를 작성해봅니다. 우선 vi test.c(소스파일이름은 원하시는대로 작성하시면됩니다)를 적어봅니다vi test.c를 작성하고 Enter를 누르면 cmd창처럼 까만 공간이 나올텐데 여기서 코드를 작성하시면 됩니다. 주의할점은 코드를 작성하기 전에 a 혹은 i를 눌러야 비로소 코드를 작성할 수 있습니다. 다 쓰시고 나시면 E..

C/Ubuntu 사용법 2017.05.12

gcc 컴파일 설치방법 및 버전확인

기본적으로 우분투에는 gcc가 설치되어있을 것인데 확인하는 방법은 gcc --version이라고 쳐보시면 됩니다위와 같이 gcc:fatal error: no input files라고 뜬다면 설치가 되어 있는것입니다 만약에 gcc 컴파일러가 설치되어있지 않았을 경우 터미널에 sudo apt-get install gcc라고 치시면 설치가 진행될 것입니다. sudo를 앞에 쓸 경우 관리자 권한으로 명령한다는 뜻입니다.관리자 권한으로 명령하기 때문에 계정 비밀번호를 쳐야 설치가 시작됩니다. 저 같은 경우는 이미 설치했기때문에 0 newly installed라고 뜨네요. gcc 컴파일러 버전을 확인하기 위해서는 gcc --version(꼭 띄어쓰셔야합니다)를 쳐보시면 됩니다

C/Ubuntu 사용법 2017.05.11

우분투 64bit가 안 보일 경우

본인의 컴퓨터 운영체제가 64bit임에도 불구하고 Virtual Box에서 Ubuntu를 설치할 때 32bit만 나타나는 이유는 Bios에서 가상기술을 비활성화해놓은 상태이기 때문이다. 따라서 컴퓨터를 부팅하자마자 F2나 Del을 눌러 Bios에 들어가 가상기술을 활성화시키면 64bit가 보일 것이다. 사진에 있는 절차대로 실행하시면 됩니다 advanced mode->advanced->CPU Configuration->Intel Virtualization Technology 활성화

C/Ubuntu 사용법 2017.05.11