Liea
'③ 공부' 카테고리의 글 목록 (4 Page)

③ 공부

③ 공부/TCP, IP Socket Programming

main_에코서버(크리티컬섹션으로)

#include "MySocketError.h" #include "MySystemError.h" #define MAXCLIENT 100 //현재 접속한 클라이언트의 소켓 정보 SOCKET clientSockets[MAXCLIENT]; int clientCount; //클라이언트들이 접속하면 하나씩 쓰레드가 만들어진다. unsigned int _stdcall ThreadFunc(void* lpParameter); //q만을 감시해서 모든 클라이언트 접속을 끊어버리겠다. unsigned int _stdcall ThreadFuncExit(void* lpParameter); CRITICAL_SECTION cs; void TotalClients(void); int _tmain(void) { _tsetlocale(..

③ 공부/TCP, IP Socket Programming

시스템 프로그래밍 : 파일 그리고 쓰레드를 제어하는 동기화모듈들(뮤텍스 세마포어 이벤트 크리티컬섹션)

2._tmain_STDIO의 파일함수로 파일을 카피하자(TCHAR).cpp #include "MySystemError.h" #define MAXSTRING 100 enum{READ,WRITE }; //#define READ 0 #define WRITE 1 int _tmain(void) { _tsetlocale(LC_ALL, _T("korean")); //1.copy할 파일의 이름을 저장한다. TCHAR filename[2][MAXSTRING] = { 0 }; if (!SelectOpenFile(filename[READ])) return -1; if (!SelectSaveFile(filename[WRITE])) return -1; for (int i = 0; i < 2; i++) _tprintf(_T("[..

③ 공부/TCP, IP Socket Programming

시스템 프로그래밍 : 쓰레드를 제대로 써보자

main_다수의 쓰레드를 만들어보자(안정화된 함수를 사용하기도 하고).cpp #include "MySystemError.h" #define MAX 100000 #define MAXTHREAD 100 int total = 0;//전역변수 DWORD WINAPI ThreadFunc(LPVOID IpParameter); HANDLE hMutex; int _tmain(void) { hMutex = CreateMutex(NULL, FALSE, NULL); if (!hMutex) SystemErrorMsg(_T("CreateMutex")); else SystemOKMsg(_T("CreateMutex")); BOOL result = FALSE; _tsetlocale(LC_ALL, _T("korean")); HANDL..

③ 공부/TCP, IP Socket Programming

시스템 프로그래밍 : 독립적인 존재 쓰레드

SystemError.h #pragma once #include//OS windows, window(s) #include #include #include #ifdef UNICODE #define SystemErrorExit SystemErrorExitW #define SystemErrorMsg SystemErrorMsgW #define SystemOKMsg SystemOKMsgW #else #define SystemErrorExit SystemErrorExitA #define SystemErrorMsg SystemErrorMsgA #define SystemOKMsg SystemOKMsgA #endif //System error void SystemErrorExitA(const char* str); //p..

③ 공부/TCP, IP Socket Programming

시스템 프로그래밍 : 문자셋(char wchar_t TCHAR 아스키코드 유니코드 템플릿 캐릭터)

SocketError.h #pragma once #include //WSAAddressToString,WSAStringToAddress #include //inet_pton,inet_ntop,InetPton,InetNtop #include #include #include #define SERVER_IPPORT L"127.0.0.0:60000" /*#ifdef UNICODE #define ErrorExit wErrorExit #define ErrorMsg wErrorMsg #define OKMsg wOKMsg #else #define ErrorExit _ErrorExit #define ErrorMsg _ErrorMsg #define OKMsg _OKMsg #endif*/ void ErrorExit(cons..

③ 공부/TCP, IP Socket Programming

#pragma

보호되어 있는 글입니다.

③ 공부/TCP, IP Socket Programming

Iterative 서버/클라이언트

Iterative 서버/클라이언트 Concurrent(동시) : 흔히 아는 게임 서버와 파링 서버 같은 서버 프로그램은 동시에 여러 클라이언트에게 서비스를 제공하는 이런 모델 Iterative(반복) : Concurrent 모델처럼 동시에 여러 클라이언트를 처리하지는 못하지만 순차적으로 여러 클라이언트에게 서비스를 제공할 수 있는 서버 모델 socket() : 소켓 생성 bind() : 소켓에 주소 할당 listen() : 연결 요청 대기 상태 accpet() : 연결 요청 수락 send() & recv() : 데이터 송수신 close(client) : 클라이언트 종료 close(server) : 서버 완전히 종료 → accept에서 close까지를 한 단위로 서비스하는 모델이다. 먼저 접속을 시도한 클..

③ 공부/TCP, IP Socket Programming

Window Socket 오류 코드들

보호되어 있는 글입니다.

③ 공부/TCP, IP Socket Programming

파일전송이 가능한 클라이언트와 서버 프로그램 만들기

파일전송이 가능한 클라이언트와 서버 프로그램 만들기 파일전송 서버에 있는 1.txt파일을 클라이언트에게 보내기 위해 각각의 exe파일을 실행시킨다. 현재 클라이언트 폴더에는 파일이 없는 상태 실행을 시키면 다음과 같은 실행창이 뜨며 파일이 옮겨진다. ↓서버 프로그램 창 ↓클라이언트 프로그램 창 FTP 서버 프로그램 코드 더보기 #define _WINSOCK_DEPRECATED_NO_WARNINGS #include "MySocketError.h" #define SERVER_IP "49.142.21.31" #define SERVER_PORT 1234 #define BUF_SIZE 100 #pragma comment(lib,"ws2_32.lib") int main(void) { int result = -1; ..