원래 코드에 호스트이름을 입력하면 호스트의 IP주소들을 얻어서 출력하는 형식또한 추가하였습니다. 클라코드 더보기 //Client #pragma warning(disable:4996) #pragma comment(lib, "ws2_32.lib") #include #include #include #include "resource.h" #define SERVERIP "127.0.0.1" #define SERVERPORT 9000 #define BUFSIZE 512 //윈도우 프로시저 BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM); //편집 함수 void DisplayText(const char* fmt, ...); //오류 출력 함수 void err_quit(cons..
책 : TCP/IP 윈도우 소켓 프로그래밍 간단하게 WINAPI를 활용하여 GUI 환경에서 TCP 소켓 프로그래밍에 대한 코드를 작성하였습니다. 물론 예제에 있는 코드입니다. 작동형식은 아래의 사진과 같이 작동하고, 각 서버와 클라이언트 프로젝트 파일에서 리소스 Dialog를 생성하여야 합니다. 추가 -> 새항목 -> 리소스 -> 리소스 파일 ->Dialog 선택 하시면 생성하실 수 있습니다. 클라코드 더보기 //Client #pragma warning(disable:4996) #pragma comment(lib, "ws2_32.lib") #include #include #include #include "resource.h" #define SERVERIP "127.0.0.1" #define SERVERP..
5장 연습문제 //Client #pragma warning(disable:4996) #pragma comment(lib, "ws2_32.lib") #include #include #include #define MAXLINE 512 #define PORTNUM 5000 int main() { ..... while (1) { .... addrlen = sizeof(peeraddr); int result; retVal = recvfrom(sockfd, (char*)&result, sizeof(int), 0, (SOCKADDR*)&peeraddr, &addrlen); if (retVal == SOCKET_ERROR) { err_quit("Recvfrom"); break; } if (memcmp(&peeraddr..
책) TCP/IP 윈도우 소켓 프로그래밍 간단하게 멀티쓰레드로 send, recv만 해보았습니다. Create Thread API 정리 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // Security Descriptor 보안설정 옵션, default = null; SIZE_T dwStackSize, // initial stack size 생성시 요구되는 스택 공간 크기 default = 0; LPTHREAD_START_ROUTINE lpStartAddress, // thread function 쓰레드가 실행할 함수의 포인터 (원형이 있음) LPVOID lpParameter, // thread argument 함수의 인자 DWORD dw..
책) TCP/IP 윈도우 소켓 프로그래밍 5장 TCP 서버 - 클라이언트 모델에서 데이터를 전송하는 방식은 다양한 방식이 있다. 1. 고정 길이 데이터 전송 2. 가변 길이 데이터 전송 3. 고정 + 가변 길이 데이터 전송 4. 송신자 데이터 전송후 접속 종료, 수신자는 recv()함수의 리턴값이 0이 될때까지 읽는다. 클라이언트 측에서 먼저 길이를 send 후 데이터를 전송하고, 서버측은 길이를 recv로 받은 후 받은 길이 만큼 recv한다. //DummyClient #pragma warning(disable:4996) #pragma comment(lib, "ws2_32.lib") #include #include #include #define MAXLINE 50 #define PORTNUM 5000 ..
책) TCP/IP 윈도우 소켓 프로그래밍 5장 TCP 서버 - 클라이언트 모델에서 데이터를 전송하는 방식은 다양한 방식이 있다. 1. 고정 길이 데이터 전송 2. 가변 길이 데이터 전송 3. 고정 + 가변 길이 데이터 전송 4. 송신자 데이터 전송후 접속 종료, 수신자는 recv()함수의 리턴값이 0이 될때까지 읽는다. While(1){ 소켓 수신 버퍼에서 1바이트 데이터를 읽는다. 읽은 데이터가 '\n'이 아니면 응용 프로그램 버퍼에 저장. 읽은 데이터가 '\n'이면 루프 빠져나옴. } 응용 프로그램 버퍼에 데이터를 사용한다. //DummyClient #pragma warning(disable:4996) #pragma comment(lib, "ws2_32.lib") #include #include #i..
책 ) 뇌를 자극하는 TCP/IP 소켓 프로그래밍 멀티 쓰레드 중에서 공유데이터를 Lock 하여 두개의 멀티쓰레드가 동시에 데이터에 접근하는 충돌을 방지하는 것을 구현하였습니다. 세마포어를 통해서 키를 생성하고 키를 획득한 쓰레드가 먼저 데이터에 접근하여 작업 후, 반환하게 되면 다음 쓰레드가 키를 얻어서 작업을 수행한다. #pragma warning(disable:4996) #include #include #include #define MAX_THREAD 2 HANDLE gsem; int count = 0; DWORD WINAPI myThread(void* arg) { int threadNum = *((int*)arg); int tmp; printf("Thread Num : %d\n", threadNu..
책 ) 뇌를 자극하는 TCP/IP 소켓 프로그래밍 TCP 와는 달리 Clinet 측에서는 Connect가 할 필요가 없고, Server쪽에서는 Listen, Accept를 할 필요가 없다. 왜냐하면 UDP는 데이터를 그냥 보내기 때문이다. #DummyClient(UDP) #pragma warning(disable:4996) #include #include #include #pragma comment(lib, "ws2_32.lib") #define PORT3600 #define IP"127.0.0.1" #define MAXLEN256 void HandleError(const char* cause) { int errCode = ::WSAGetLastError(); std::cout
- Total
- Today
- Yesterday
- 레지스터
- c++
- 학교
- 백준
- STL
- 개발
- 보안
- 컨퍼런스
- 멀티쓰레드
- 고양이
- 지뢰찾기
- 인제대학교
- Select모델
- Dreamhack
- 스레드풀
- 시스템보안
- queue
- 야경
- 드림핵
- 정보보안
- 링크드 리스트
- 워셜알고리즘
- 자료구조
- BFS
- 더블버퍼링
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |