본문 바로가기

네트워크 프로그래밍 8/9 1 . Thread란? : thread는 독립적이고 병행적인 실행흐름을 갖는 프로그램 실행단위이다.-프로세스 안에 존재하며 프로세스의 자원을 공유한다.-하나의 process안에 여러개의 thread -thread는 모체인 프로세스가 존재하는 동안 실행되며 각 thread는 독립적 실행흐름을 갖는다.-프로세스 내부의 thread는 메모리 영역(text,data)을 공유하며 stack은 별도의 stack pointer를 가진다.-주소공간 대부분을 공유함, 생성이 빠르고 오버헤드가 작아서 경량급 프로세스(light weight process)라고 불린다.-thread는 자신의 요구에 의해 종료되거나 프로세스가 종료될 때 같이 종료된다. Ptheard?(Posix thread) ​:운영체제마다 thread를 자.. 더보기
네트워크프로그래밍 6/7 헤더 데이터 데이터가있으면 헤더가 있는데 그 공간에 ACK와 SYN, SEQ가 존재한다. SEQ는 처음에 무슨값이 되든 상관없음. 시퀀스번호는 처음에 랜덤으로 지정해준다. 다른곳에서 같이 통신하면 혼선이 올 수 있기 때문에 SEQ 번호 (내꺼) ACK 번호 (받은거) 프로그램을 실행하기 위해서는 메모리로 들어가야 한다. 메모리가 좋을 수록 실행속도가 빨라진다. 프로세스 ID = PID 메모장을 두개 띄웠을 때도 프로세스의 번호는 다르다. 시그널 핸들러 의미 함수 이름 시그널을 받으면 '함수 이름' 함수가 실행된다. SIG_IGN 시그널을 받으면 무시한다. SIG_DFL 시그널을 받으면 시스템에서 기본적으로 설정한 동작을 한다. void (*signal(int signum, void (*handler)(i.. 더보기
네트워크 프로그래밍 4/5 코드마다 error의 의미가 다름 man 2 listen 은행이라고 생각하면 창구에서 받을 수 있는 인원이 3명이고 대기자공간이 5명이라면 창구에서 받을 수 있는 인원을 늘리는 것이 PC / LAN / OS에 따라 다르며 /* (처리하는 것) 대기자를 늘리는 것은 메모리에 따라 다르다. (대기자 = 대기큐) /* (기다리는 것) - 일반적으로 대기큐를 늘리는 것 보다 넘치는 인원을 거절하는게 나음 - - 대기큐는 거의 5로 설정 - listen(소켓번호, 대기큐); Server.c Connect.c socket socket bind connect listen close block ex : scanf ( (scanf는 키 입력전까지) 대기하는 것을 블록킹이라한다.) 대기하지않는 것을 넌블록킹이라고한다. a.. 더보기