본문 바로가기

네트웍 프로그래밍4

[윈도우 네트워크] Blocking 과 Non-Blocking [Blocking / Non-Blocking] Blocking Blocking IO Model I/O 작업은 유저 레벨(User Level - Application)에서 직접 수행할 수 없다. 실제 I/O를 수행하는 것은 커널레벨(Kernel Level - OS) 이다. 따라서 유저 프로세스(또는 쓰레드)는 커널에게 I/O를 요청해야 한다. I/O 작업을 처리하기 위해 유저 레벨(User Level)에 있던 Application이 시스템 함수를 호출한다. (system call) 이 때, 컨텍스트 스위칭(Context Switching)이 발생한다. 그리고 커널 레벨(Kernel Level)에서 해당 I/O 작업이 끝나고 데이터를 반환하게 되면, 그 때가 되어서야 어플리케이션 단의 스레드(thread)에.. 2018. 1. 8.
[윈도우 네트워크] recv() : 소켓으로부터 데이터 수신 [C++] recv() 설명 recv() 함수는 소켓으로부터 데이터를 수신합니다. 헤더 #include 구조 int recv( SOCKET s, char *buf, int len, int flags) 인수 SOCKET s : 소켓 디스크립터 char* buf : 수신할 버퍼 포인터(데이터) int len : 수신할 버퍼의 길이(크기) int flags : MSG_PEEK , MSG_OOB , MSG_WAITALL 반환 -1 이외 : 실제 수신한 바이트 수 -1 : 실패 감사합니다. 공감 한번 부탁드려요. 2018. 1. 8.
[윈도우 네트워크][TCP/IP] 소켓(Socket)이란? [TCP/IP][네트워크 프로그래밍] 소켓(Socket)이란? 소켓(Socket)의 정의 소켓(Socket)은 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 처음 소개되었으며 현재 널리 사용되는 것은 1986년의 BSD UNIX 4.3에서 개정된 것입니다. 소켓은 소프트웨어로 작성된 추상적인 개념의 통신 접속점이라고 할 수 있는데 네트웍 응용 프로그램은 소켓을 통하여 통신망으로 데이터를 송수신하게 된다. 소켓은 응용 프로그램에서 TCP/IP를 이용하는 창구 역할을 하며 응용 프로그램과 소켓 사이의 인터페이스 역할을 하고 있습니다. 1. 소켓(Socket)이란-1 ? 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 링크의 단자입니.. 2017. 3. 30.
[윈도우 네트워크][TCP/IP] 윈도우 소켓 프로그래밍 배우기 [TCP/IP][네트워크 프로그래밍] 윈도우 소켓 프로그래밍 배우기 윈도우 소켓 프로그래밍 배우기 안녕하세요. TCP/IP 윈도우 소켓 프로그래밍을 공부하면서 글을 적어 보려 합니다. 인터넷의 보편적인 보급과 스마트폰 같은 모바일 기기의 활성화 덕분에 다양한 통신 응용 프로그램에 대한 요구가 늘고 있습니다. 이 때문에 네트워크 프로그래밍에 대한 이해와 기술 습득은 소프트웨어 개발자에게 필수 요소가 되고 있습니다. 1. 네트워크 프로그래밍이란? 네트워크 프로그래밍이란 서로 떨어져 있는 호스트(컴퓨터)들 간에 데이터를 주고 받을 수 있도록 프로그램을 구현하는 것입니다. 다만 통신할 대상이 멀리 떨어져 있기 때문에 소프트웨어 차원에서 호스트들간에 연결해주는 장치가 필요하고 이러한 기능을 해주는 장치를 소켓(s.. 2017. 3. 30.