3-1학기 과목(지금 볼거X)/네트워크프로그래밍 (5) 썸네일형 리스트형 6주차-2 ***멀티 스레드 VS 멀티 프로세스 (차이점, 공통점) ***함수의 시작 주소 위치 ..=>문제 무조건 나옴!! *윈도우: 대문자 구분 : linux 언더바 구분 CreateThread()함수 =>앞 강의에서 말한, 윈도우에서 스레드 생성 시 사용. =>스레드 생성 후, 핸들을 리턴하게 됨. (왜? 사용자가 커널을 건드려서 OS를 망치면 커버할 방법이 없자나..) DWORD WINAPI (쓰레드 이름)(LPVOID lpParameter) { NULL, 0, (함수 이름), 포인터 값, 0, null } 1)쓰레드 보안 속성. NULL 찍으세용 2)쓰레드 할당 크기 설정(DEFUALT=1MB) 3)시작주소 ==함수 이름(앞에서 들었죠?) 4)쓰레드 함수에 전달할 인자 값. 5) 0: 쓰레드를 생성하자마자.. 6주 1 169p~ 스레드 기초 멀티스레드가 왜 필요한가 1)다중 처리 문제. =>TCP/IP의 클라이언트가 접근시, 접근 후 새 소켓을 만드는데 필요함. //앞선 파트에서 설명한 다중 클라이언트 연결 방식은 이상적임. 다만, 해당 방식은 TCP의 단일 스레드 구조로는 동작할 수 없음. while(1) { accept(); recv(); send(); }//단일 스레드 클라-서버 구조의 예시 위와 같은 방식으로 프로그래밍시 send()를 받기 전까지 반복문의 분기가 이뤄지지 않음. 다시 말해 서버가listen()상태가 아니라는 것. 따라서 C2가 접근을 해도. accept를 하지 못하고 대기 상태에서 기다리게 됨. 위 문제는 //멀티 프로세스//멀티 스레드//멀티 플렉싱 3가지 방식으로 해결 가능. 2.데드락문제.. 5주 2 (코드작성 142p) 공개 키 암호화의 진행 과정. =>가정: 클라이언트는 서버의 공인키를 들고 있으며, S와 C는 같은 암호화 알고리즘을 사용한다. 0)C=>S 접속, 및 공개 키 요청. 1)S=>C 공개키를 클라이언트에게 전송함.(공개 키의 크기는 가변.) 2)Client : 난수 생성후, 공개키를 통해 암호화 3)C=>S: 암호화된 난수 전송 (암호화된 난수의 길이는 가변(var) ppt가 잘못됨, 대칭키 암호라 ㅈ~라 김.) 4)Server: 자신의 개인 키로 복호 5)Server/Client: 공유한 난수를 기반으로 KDF(세션키 유도) //(Key Deribation Fuction ) 키 유도 함수 6)S=>C: ACK전송 7)C=>S: 대칭키 암호 알고리즘 이용 데이터 암호화 후 전송. 8).. 4주-2 과제 공지!! =>서버 클라이언트 만드는 것 배우고 중간고사 뒤에 과제 낼 예정. 채팅 프로그램 만들어 보고 간단하게 교수님이랑 만나서 폴드 리뷰 5~10분 정도 할 거에요. 도메인 이름과 변환 함수. DNS:IP 주소 일일이 기억하기 어렵쟈나!, ip주소에 매핑 시킨 형태. hostent 구조체 struct hostent{ char *h_name; char **h_aliases; //포인터 한개랑 두개의 차이? *:배열의 위치 , **:이차원 배열의 위치 short h_addrtype; short h_length; char **h_addr_list; #define h_addr h_addr_list[0] }; gethostbyname => 도메인 이름을 ip주소로 변경. input 도메인 이름 outpu.. 3주-2// 디버그 빌드와 릴리즈 빌드의 차이 -디버그 빌드: 개발자 사용(디버깅) : exe파일 안에 실행 코드를 행성 (exe파일 내부에 디버깅 관련 pdd파일의 생성. //pdd파일의 디스 어셈블링으로 코드 파일을 얻을 수 있음 -릴리즈 빌드:디버깅에 필요한 정보 포함X, 대신 디버그 빌드에 비해 속도가 느림. 따라서 상용 코드라면 릴리즈 빌드를 해야함, 디버그 빌드시 소스코드를 뿌리는 것. ..와 의 차이. #include ===>정해진 패스의 헤더들을 include #include“../common.h” ==>정해진 폴더가 아닌 곳의 헤더를 사용할 때, ..사용 (동아리에서 배웠듯, ..는 상대경로가 한칸 위라는 이야기.) 디버깅 하는법 1)F9를 눌러 break point를 만든다. 2)이후 F5를 누르면.. 이전 1 다음