connect() 시스템 콜의 에러 상황을 재현해 보기 connect () 시스템 콜의 결과로 각각 ETIMEDOUT, ECONNREFUSED, EHOSTUNREACH(또는 ENETUNREACH) 가 return되는 3가지 경우를 재현 타임아웃 - 클라이언트가 소켓을 통해 패킷을 서버에게 보냈는데 중간에 있는 라우터에서 그 서버에 해당하는 네트워크에 도달하지 못하고 중간 라우터들 사이에서 뺑뻉이를 돌기 때문에 발생함. 클라이언트가 SYN를 서버에게 보내면 서버는 SYN+ACK를 보내고 이것을 클라이언트가 받게 되면 클라이언트는 연결이 성공했다고 판단하고 ACK를 다시 서버에게 보낸다. ACK를 받은 서버는 그제서야 클라이언트와 연결이 성공했다고 인지하게 된다. 그런데 SYN를 보낸 클라이언트가 SYN+A..
서버에 있는 프로그램에서는 리슨 소켓을 만들고 나서 accept()시스템 콜을 호출한다. 이 시스템 콜을 호출하게 되면 그 프로세스는 블락 되게 되며 (클라이언트로부터 3way 핸드쉐이크 요청이 올때까지) 클라이언트로 부터 요청이 들어오면 Incompleted Queue에 그 요청정보를 넣어 놓고 나서 다시 클라이언트에게 SYN+ACK를 보내준다. 그리고 나서 클라이언트 프로그램에서 SYN+ACK를 받으면 connect()시스템콜이 정상적으로 리턴 되며 연결이 성공했다고 인지하게 되고 ACK를 다시 서버에게 보내준다. 서버가 마지막 ACK를 받으면 Incompleted Queue에 있던 클라이언트의 연결 요청을 Completed Queue로 옮기게 되고 이 큐에 옮겨 지고 나면, 서버의 커널이 블락 되어..
#include c언어의 버전이 업 되면서 변경된 자료형의 정의들과 시스템마다 int를 표현하는 바이트수가 다르므로 그런것들을 다른 자료형으로 정의하는 typedef문들이 들어있다.(int가 어떤곳에선 2바이트 , 요즘에는 거의다 4바이트이기 때문에 이 두개의 자료형을 구분하는 어떤 타입정의가 필요함) 한마디로 시스템에서 사용하는 자료형에 관한 정보들을 담고있다. #include 에 정의된 소켓 구조체 struct sockaddr_in{unsigned short int sin_family; //16비트uint_16t sin_port; //16비트struct in_addr sin_addr; unsigned char sin_zero[8];} socket(AF_INET, SOCK_STREAM,0) AF_INE..
경쟁 상태 (Race condition) 공학 분야에서 경쟁 상태(race condition)란 둘 이상의 입력 또는 조작이 동시에 이루어지는 상태를 말한다. 이런 상태에서는 정상적인 결과가 나오지 않게 될 위험이 있는데 이를 경쟁 위험이라고 한다.-> 공유 자원에 대해 여러 개의 프로세스가 동시에 접근을 시도하는 상태, 동시에 접근하면 A프로세스가 쓴 값을 바로 이어서 B프로세스가 덮어씌우는 상황이 나타날 수 있다. 이를 방지하기 위해서는 상호배제가 필요하다다중 프로그래밍다중 프로그래밍(Multi-programming)이란 CPU 작업과 입출력 작업을 병행하는 것이다. CPU 이용과 처리량을 향상시킬 수 있다. 프로세스 테이블프로세스프로세스 -> 프로세스 테이블에서 한 엔트리, 독립적인 주소 공간 차지..
클릭
로컬에서 만든 스프링 mvc 프로젝트를 웹에 올리는 방법 이후 Finish 입력 카페 24 톰캣 호스팅 기준으로 설명ftp 주소와 아이디 비밀번호 입력해줌. 그다음 tomcat/webapps/에 들어가고 거기에 아까 export한 ROOT.war 배포 그다음 putty와 같은 텔넷 프로그램 사용해서 서버에 접속 저는 맥 이라 터미널로 접속하겠음. 똑같이 사용자 아이디 비밀번호 입력하면 텔넷 접속 성공 이후 ./tomcat/bin/shutdown.sh -> 톰캣 서버 내리기./tomcat/bin/startup.sh -> 톰캣 서버 실행을 순차적으로 해주시면 됨. 이런식으로 나온다면 성공 이렇게 톰캣을 껏다 켜주면 아까 ftp에서 업로드 했던 ROOT.war의 압축이 풀려서 ROOT라는 폴더가 만들어 진다...
사용자가 쓸 수 있는 포트번호에는 종류가 있다.1~1023 : 잘 알려진 포트번호 (well-known port number)1024~49151 : 등록된 포트번호49152~65535 : 동적 포트번호 잘 알려진 포트번호의 같은 경우에는 루트권한이 필요하며 시스템에 필요한 포트번호 이기 때문에 사용자가 응용프로그램에서 필요하다고 해서 이 범위 내에 있는 포트번호를 사용하면 안된다. 이 범위의 번호들은 IANA(Internet Assigned Number Authority)에서 지정한것이며 이러이러한 일을 하는 시스템 프로그램은 이 포트번호를 써야 한다고 권장하는 내용을 담고 있다. 등록된 포트번호 : 사용자가 소켓프로그래밍을 할 때 개인적으로 사용하고 싶은 포트번호가 있을때 사용해도 되는 포트번호이다.위..
연결형 서버 프로그램 작성 절차▶ 그림 2-11에 TCP(연결형) 서버를 iterative 형태 즉, 서비스 요구가 들어오는 순서대로 처리해 주는 형태로 구축하는 절차를 나타냈다.▶ 서버는 socket()으로 소켓을 개설하고 bind()를 수행한 후 listen()으로 소켓을 수동 대기모드로 만든다.▶ 다음에는 accept()를 호출하여 자신에게 연결을 요청하는 클라이언트의 연결을 처리하도록 한다. ▶ 하나의 서비스를 완료하면 다음 요청을 반복적으로 처리한다. 1. socket() 소켓 생성socket(PF_INET, SOCK_STREAM, 0);서버에서도 마찬가지로 소켓을 생성해야 한다. (2) bind(), 소켓번호와 소켓주소 구조체 연결▶서버에서도 마찬가지로 socket()시스템 콜을 하면 소켓번호..
- Total
- Today
- Yesterday
- useRef
- reflow
- await
- Babel
- webpack
- type alias
- return type
- Polyfill
- promise
- react hooks
- props
- server side rendering
- mobx
- atomic design
- rendering scope
- reducer
- async
- computed
- typescript
- javascript
- state
- es6
- design system
- Next.js
- hydrate
- Action
- storybook
- useEffect
- reactdom
- react
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |