안녕하세요 허언증입니다. 참고 recv function (winsock2.h) - Win32 apps Receives data from a connected socket or a bound connectionless socket. docs.microsoft.com recvfrom function (winsock2.h) - Win32 apps The recvfrom function receives a datagram and stores the source address. docs.microsoft.com recv() recv() 함수는 소켓으로부터 데이터를 수신합니다. #include int recv(int s, void *buf, size_t len, int flags); int s : 소켓 디스크립터 ..
전체 글
Job : 네트워크, 가상화, Private Cloud / Hobby : 사진,재테크(주식)![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBWgtc%2FbtqAeiTSp5E%2FFRaRQB6cIEEqOD2nO0DghK%2Fimg.gif)
안녕하세요 허언증입니다. 참고 send function (winsock2.h) - Win32 apps Sends data on a connected socket. docs.microsoft.com sendto function (winsock2.h) - Win32 apps The sendto function sends data to a specific destination. docs.microsoft.com Send() send() 함수는 연결된 서버나 클라이언트로 데이터를 전송합니다. #include int send(int s, const void *msg, size_t len, int flags); int s : 소켓 디스크립터 void *msg : 전송할 데이터 size_t len : 데이터의 바이트..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHb6hR%2FbtqAeGtnkvM%2FdbsRvtleU76nA46ZjN0rZK%2Fimg.png)
안녕하세요 허언증입니다. 구조체를 초기화 할때 사용하는 방법은 총 3가지! 1. ZeroMemory() #incldue void ZeroMemor(){ PVOID Destination, Size_T Length } Destination : 0으로 채울 메모리 시작 포인터 Length : 받는 포인터 크기 2. memset() #include void* memset(vodi* ptr, int value, size_t num) ptr : 채울 메모리 시작주소 value : 채우는 값 int 형이지만 u_char(1byte)로 변환되어 저장 num : 채우는 크기 3. Struct s = {0}; 어셈블리어 코드를 확인하면 차이는 없다 결국 memset() 호출해서 사용하기 때문에 ZeroMemory() v...
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flpmx3%2FbtqAa7S2Ex2%2FOQL6IYeUZ4a30n8CkZ8K9K%2Fimg.png)
안녕하세요 허언증입니다. UDP(Data GramSocket)프로토콜을 이용해서 Server & Client통신을 (채팅) 소스 예제 입니다. 참고 사이트 https://docs.microsoft.com/en-us/windows/win32/api/winsock2/ winsock2.h header - Win32 apps docs.microsoft.com Code : 2 ~ 3 WinSocket API 사용 추가 #include 만 사용할 경우 lib 파일이 없어서 실행해도 오류 발생 #praga comment (lib , "ws2_32.lib") 를 통해 lib파일 사용한다고 명시. Code : 9 ~ 13 WSADATA 구조체 : Windows의 소켓 초기화 정보를 저장하기위한 구조체 WSAStartup..
안녕하세요 허언증입니다. 주소를 표현하기 위해 사용하는 구조체 sockaddr_in 안에서 IP를 나타내기 위한 데이터 타입은 unsigned long형입니다. 그래서 IP주소 정보를 할당 하기 위해서 문자열의 "192.168.10.10"을 unsigned long 으로 바꿔주어야 합니다. 참고로 "192.168.10.10"의 표현방식은 Dotted-Decimal Notation 즉, 십진수 표현 방식 이라고 말합니다. 계산을 해서 unsigned long으로 바꿀 수 있지만 그렇게 할 필요가 없습니다. 바꿔주는 함수가 있기 때문이죠 이런 함수들을 인터넷 주소 조작 함수라고 하는데 이 함수들은 단순히 변환만 시켜주는게 아니라 바이트 순서를 바꿔주는 일도 해줍니다. 그럼 하나하나 살펴보겠습니다. 1. in..
--발생원인-- 1. MS에서 지원하는 SDK파일들을 불러오지 못 해서 Error 발생 도구 > 옵션 메뉴의 프로젝트 및 솔루션 > VC++ 디렉터리 > 실행 파일 디렉터리 rc.exe가 위치한 경로를 추가해준다. 보통 설치한 Windows SDK 경로를 추가해주면 된다. " C:\Program Files (x86)\Microsoft SDKs\Windows\v10.1A\Bin " 추가 v10.1A 버전이 업데이트로 인해 폴더 명이 다를수 있습니다. 경로 따라가서 확인 해보세요! 2. " { " , " } " 중괄호를 하지 않아서 에러 발생 항상 가독성 있는 코드정리! 발생원인은 많겠지만 2가지 정도로 알고 있고 단순 로직문제 또는 프로그램 설정 오류이다
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcfmy0y%2FbtqzYMn7shd%2FnYYjBU0fiWCYmh95DtPoEk%2Fimg.png)
안녕하세요 허언증 입니다. Windows Socket API 이용 Visual Studio 2019 MFC C++ 사용 블로그에선 소스코드를 정리한 파일을 제공 하며 전체 소스를 보고 싶은 분은 하단에 깃허브에서 참고 하세요!! https://docs.microsoft.com/en-us/windows/win32/api/winsock2/ winsock2.h header - Win32 apps docs.microsoft.com ....내용 추가 대기중 https://github.com/MinKyungHwi/Network_Socket_Study MinKyungHwi/Network_Socket_Study Network_Socket_Study. Contribute to MinKyungHwi/Network_Sock..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fky4H1%2FbtqAddxMGOF%2F3KRnyhQr8Yc6HW0t5PaGgK%2Fimg.gif)
IP와 포트의 관계에 대해서 설명을 한 적이 있는데 이번에는 포트와 소켓의 차이에 대해 기록을 남기게 되었습니다.. 포트와 소켓은 접하기 쉽지만 개념에 대해 물어보면 정확하게 답변 하는 사람은 많이 없을거라고 생각합니다. 포트란 무엇인가? 포트는 통신을 할 때 특정 서비스를 이용하기 위한 연결고리입니다. 나는 인터넷 서비스를 이용하고 싶으니까 우리 80포트로 서로 인터넷하자! 그럼 80번 포트로 설정을하고 통신을 하면 인터넷을 이용 할 수 있습니다. A이용자 와 B이용자가 80번 포트로 지정을 했을 때 서비스가 이용가능 A이용자가 81번 포트 설정 / B이용자가 80번 포트 설정 => 통신x 통신을 하기위해 포트를 지정하고 서비스를 이용해야 합니다. 인터넷 말고도 평소에 잘 사용하지 않지만 FTP / T..