목록전체 글 (420)
외로운 Nova의 작업실
안녕하세요. 오늘은 어제 오류에대해서 공부하고 원래 하려했던 도메인네임으로 ip를 받아보도록 하겠습니다. 먼저 어제 오류는 WSA관련 함수를 사용하지않아서 나타나는 현상이였습니다. 그러니 socket프로그래밍을 winsock.h를 통해서 할땐 꼭 wsa관련함수를 작성해야 합니다. 하지만 어제 짯던 프로그램은 돌아가지 않았습니다. 먼저 코드를 보시죠 #include #include #include #include #include int main(int argc, char* argv[]) { WSADATA wsaData; struct addrinfo hint; //힌트를 담을 구조체 선언 struct addrinfo* result; //결과값을 담을 구조체 포인터 선언 int check = 0; //geta..
안녕하세요, 오늘은 지난 시간에 이어 DNS와 관련된 함수를 배워보도록하겠습니다. 먼저 DNS란 Domain Name System의 약자로 IP를 문자(Name)으로 알 수 있게 해주는 시스템입니다. 컴퓨터의 세계에서 통신은 잘 알다시피 IP로 진행을 합니다. 다만 이 IP는 사람이 잘 기억하지못합니다. 예를들어 구글 서버의 IP는 142.250.199.68입니다. 만약 DNS가 없었다면 우리는 구글링을 할때 항상 142.250.199.48을 쳐서 구글서버에 요청을 보낼것입니다. 그렇다면 질문하겠습니다. google을 외우기 편할까요? 아니면 142.250.199.48이 외우기 편할까요? 사람이라면 문자를 배웠다면 당연히 google이 편합니다. 이처럼 사람들이 편리하게 서버를 찾고 통신하기 위해 DNS..
안녕하세요. 오늘은 지난시간에 이어 half-close()함수에대해 배워보겠습니다. half-close()함수를 설명하기에 앞서 필요성에대해 설명해보겠습니다. 서버와 클라이언트 사이에 통신할때 아래와 같은 상황이면 서버는 마지막 클라이언트의 문자열을 받지못합니다. 그전에 EOF라는게 있는게 EOF란 End Of File 이라는 뜻입니다. 소켓에서는 closesocket()함수를 사용할때 상대에게 EOF가 전달이됩니다. 그럼 한번 흐름을 봅시다. 1. 클라이언트 ---연결요청 --> 서버 2. 서버 --- 파일데이터 --> 클라이언트 3. 서버 ---EOF(closesocket()) --> 클라이언트 4. 클라이언트 ---"Thank you" --> 서버 위 상황에서 3번의 흐름에 서버는 closesock..