🧼C, C++/네트워크
IOCP 에코 서버-클라이언트 C++ (CompletionQueue)
오랜만에 네트워크관련글을 쓰게되었습니다.
사실 반년전에는 네트워크관련글을 열심히올리다가, 대부분 알고리즘&게임엔진에 대한 글을 많이쓰게되었습니다.
그리고, 현재..
TCP/IP IOCP 에코서버&클라이언트에 대한 글을 쓰게되네요.
✨ 다운로드
https://github.com/orangelie/IOCP-Echo
🔮 클라이언트를 특정할 수 있습니다.
/**
@struct PER_CompletionSock
*/
typedef struct {
SOCKET hSocket; //< SocketHandle
SOCKADDR_IN hAddr; //< SocketAddrIn
unsigned int hNumberOfClient; //< ClientNumber
} PER_CompletionSock, * LPPER_CompletionSock;
위 코드블럭은 CompletionQueue로 전달되는 소켓정보에 관한 구조체입니다.
"hNumberOfClient"로 콜백함수내에서 해당클라이언트가 할당받은 번호가 몇번인지 확인할 수 있습니다.
🔮 사용가능한 레퍼런스
/**
@param (Server-IPAddress, Sever-Port)
*/
mawile::IOCPError mawile::IOCPClient::Initialize(const char*, int);
/**
@param (Continuous connection until connection to the server is reached)
*/
mawile::IOCPError mawile::IOCPClient::Connect(bool);
/**
@param (Client Acceptance Callback Function, Server-Port)
*/
mawile::IOCPError mawile::IOCPServer::Initialize(_beginthreadex_proc_type, int);
/**
@param (Client infinite listenability)
*/
mawile::IOCPError mawile::IOCPServer::Listen(bool);
위와 같이 각각 클라이언트와 서버에서 사용될 수 있는 레퍼런스들입니다.
🔮 정확한 오류지점을 얻고싶다면, 다음함수를 사용하세요.
mawile::IOCPErrorResult(mawile::IOCPError);
🔮 프로그램 테스트사진은 다음내용에서 확인가능합니다.
https://github.com/Mawi1e/IOCP-Echo#pictures
감사합니다!
'🧼C, C++ > 네트워크' 카테고리의 다른 글
c/c++ 메일 전송(smtp프로토콜) | 이론과 실습 (4) | 2021.12.25 |
---|---|
소켓 파일전송 프로그램 C++ #4 (6) | 2021.01.21 |
소켓 파일전송 C++ #3 (0) | 2021.01.20 |
다중 스트림서버 C++ TCP #1 (0) | 2020.12.31 |
다중 클라이언트 C++ TCP #3 (수정본) (2) | 2020.12.24 |
댓글