안녕하세요 허언증입니다. 참고 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 : 소켓 디스크립터 ..
KyungKing's Story
안녕하세요 허언증입니다. 참고 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 : 데이터의 바이트..
안녕하세요 허언증입니다. 구조체를 초기화 할때 사용하는 방법은 총 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...
안녕하세요 허언증입니다. 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가지 정도로 알고 있고 단순 로직문제 또는 프로그램 설정 오류이다
안녕하세요 허언증 입니다. 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..
IP와 포트의 관계에 대해서 설명을 한 적이 있는데 이번에는 포트와 소켓의 차이에 대해 기록을 남기게 되었습니다.. 포트와 소켓은 접하기 쉽지만 개념에 대해 물어보면 정확하게 답변 하는 사람은 많이 없을거라고 생각합니다. 포트란 무엇인가? 포트는 통신을 할 때 특정 서비스를 이용하기 위한 연결고리입니다. 나는 인터넷 서비스를 이용하고 싶으니까 우리 80포트로 서로 인터넷하자! 그럼 80번 포트로 설정을하고 통신을 하면 인터넷을 이용 할 수 있습니다. A이용자 와 B이용자가 80번 포트로 지정을 했을 때 서비스가 이용가능 A이용자가 81번 포트 설정 / B이용자가 80번 포트 설정 => 통신x 통신을 하기위해 포트를 지정하고 서비스를 이용해야 합니다. 인터넷 말고도 평소에 잘 사용하지 않지만 FTP / T..