서버를 만들고, 여러 테스트하는 것 중에 영구 접속이 끊어지는 상황을 재현하는 것은 쉽지 않을 수 있다. 디버거를 이용하여 간단히 종료시켜 보는 법을 알아 본다. python으로 돌고 있는 데몬(pid 11688)이 있다고 하고, 데몬의 DB 접속은 영구 접속에 해당하는데, 이 접속을 강제로 종료시키는 것을 가정한다. $ lsof -n -p 11688 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 11688 pynoos cwd DIR 202,3 80 1636949 /misc/django_projects/app/broadcast python 11688 pynoos rtd DIR 202,3 4096 128 / python 11688 pynoos txt..
TCP/IP 서버를 만들때는 다음과 같은 방법으로 만들게 된다. 1. 소켓 생성 2. bind 3. listen 4. accept 로 클라이언트 소켓 생성 소켓 프로그램을 처음하는 사람들이 겪게 되는 의문 중의 하나는 무엇에다가 묶고(bind), 듣기전까지는 어떤 일이 일어나길래 들어야(listen)하는가인데, 여기에는 발상의 전환이 필요하다. 일반적으로 파일을 열고 파일에서 읽는 과정을 생각해보면, 이미 경로라는 구별되어 있는 개체가 존재하고 그것을 다루기 위한 기술자(descriptor)를 만들어 기술자를 모든 파일 관련 입출력 함수에 인자로 넘기게 되는데, 소켓 프로그램은 그 반대라는 것이 중요하다. 기술자(socket)를 먼저 만들고, 그 기술자를 구별될 수 있는 경로 혹은 주소에 가져다가 붙이는..
- Total
- Today
- Yesterday
- 커피
- Tattertools plugin
- 구근
- VIM
- 대화
- perl
- 벤자민
- writely
- 킹벤자민
- 디버깅
- 퀴즈
- tattertools
- macosx
- 식물
- SVN
- 오픈소스
- 수선화
- MySQL
- 덴드롱
- OpenID
- Subversion
- BlogAPI
- 클레로덴드럼
- ssh
- SSO
- JavaScript
- Linux
- TCP/IP
- nodejs
- url
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |