일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vb
- 파이어버드
- xml
- 파라미터
- winsock
- 소니
- 델파이
- VB.NET
- WIN32 SDK
- MFC
- 데이터베이스
- SQL
- 예제
- Visual Basic
- 초보
- Delphi
- Visual Studio 2005
- SDK
- 설치
- 문자열
- 입문
- MySQL
- PostgreSQL
- dll
- c#
- 인스톨
- Firebird
- 시리얼 통신
- 기초
- 셋업
- Today
- Total
목록TCP/IP (4)
프로그래밍 노트
누가 소프트웨어의 심장을 만들었는가 에서 발췌 광야의 외침: 선지자의 시대 Alan Turing (1911~1954) : 현대 컴퓨팅의 아버지 책상 위에서 매일 접하는 현대 컴퓨터의 수학적 모델을 제시한 선지자며, "기계는 생각할 수 있는가"라는 화두를 던져 수많은 과학자와 작가들을 고민하게 만든 천재였다. 독일군이 만든 악명 높은 에니그마(Enigma) 암호를 해킹하여 연합군이 2차 세계 대전을 승리하게 만든 숨은 영웅이었으나, 독이 든 사과를 먹고 자살했다. 컴퓨팅 분야의 노벨상이라 불리는 튜링상(Turing Award)이 그가 세상을 뜬 지 12년 만에 만들어졌다. 컴퓨터의 실체가 존재하지 않았던 20세기 초반, 대부분의 사람들은 특정한 일이나 계산을 자동으로 수행하는 기계를 만들려면 매번 그에 맞..
inet_addr()을 이용하여 "127.0.0.1"라는 문자열을 32비트의 바이너리 값으로 변환한다. inet_addr()는 IP 어드레스를 나타내는 문자열을 바이너리 값으로 변환하는 함수이다. 통신하기위해 상대방을 지정할 때는 "127.0.0.1"과 같은 IP 어드레스를 쳐넣지만 "localhost"와 같이 이름을 이용하여 통신할 상대방을 지정할 수도 있다. 이와 같이 호스트의 이름으에서 IP 어드레스로 변환해 주는 함수가 gethostbyname()이다. #include #include int main() { WSADATA wsaData; SOCKET sockClt; char szMsg[32]; char pszName[32]; struct sockaddr_in addrSockSvr; printf("..
TCP의 서버 프로그램을 종료한 바로뒤 다시 서버를 기동하면 bind에서 에러(Address aleady in use)로 끝날 때가 있다. TCP의 서버 프로그램을 종료하고 다시 기동시켰는데 왜 bind가 되지 않을까? 라고 생각하며 시간이 지난후 다시 기동시키면 문제업이 bind가 된다. 이 문제는 TCP 자체 사양에 의하여 일어나는 문제이다. 구체적으로는 TCP의 TIME_WAIT상태가 bind를 fail시킨다. 서버는 TCP 세션을 받은 상태에서 close하면 TIME_WAIT상태가 된다. 이때 주의해야되는 것은 TCP 서버의 TIME_WAIT가 발생하는 경우와 발생하지 않는 경우가 있다는 것이다. TCP서버 쪽에서 close를 먼저 실행하면 TIME_WAIT상태가 발생하지만 TCP클리아언트 쪽에서..
서버가 클라이언트의 접속을 기다리다가 클라이언트가 접속 되었을때 어느 클라이언트가 접속 했는지 알아야 할때가 있다. accept가 되어지면 accept함수의 두번째 파라미터에 상대방에 대한 정보가 저장되어진다. 예제는 accept한 상대방의 IP어드레스와 포트를 표시한다. (IP어드레스는 문제없이 가져오는데 포트를 제대로 못가져온다. -.-;;; ) (왜 이상한 포트 번호가 넘어오는지 모르겠다. -.-????? ) #include #include int main() { WSADATA wsaData; SOCKET sockSvr; SOCKET sockSS; int nlen; struct sockaddr_in addrSockSvr; struct sockaddr_in addrSockclt; // 윈속 초기화 W..