본문 바로가기

[+] Information

[2009/06/08] TCP 소켓의 데이터 전송 특징 1. TCP 기반의 데이터 전송 특징 - 한번의 데이터 전송함수 호출(write, send)이 늘 하나의 패킷을 형성하는 것은 아니다. 2. 경계가 없는 TCP 기반의 데이터 전송 - 데이터 송수신 함수의 호출 횟수는 큰 의미를 지니지 않는다. 3. 버퍼의 존재 1 - 이미 전송된 데이터는 어디에서 존재 하고 있었는가? 4. 버퍼의 존재 2 - 입력 버퍼와 출력 버퍼의 역할. 5. TCP 기반의 전송 제어 - 버퍼가 수용 할 수 있는 크기 이상의 데이터 전송은 이뤄지지 않는다. - 따라서, TCP 기반의 데이터 전송 함수는 여러 개의 패킷을 생성하기도 한다. - 슬라이디 윈도우 프로토콜. 으휴... ㅠㅠ 축제니 데프콘 대회니 뭐니 해서 이제 하넹 ㅠㅠ 더보기
[2009/06/01] 예제소스(helloworld_server2.c, echo_server_win.c, echo_client_win.c, echo_server.c, echo_client.c) /* helloworld_server2.c */ #include #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char **argv) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; int clnt_addr_size; char message[]="Hello World!\n"; if(argc!=2){ printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET, SOCK_STREAM.. 더보기
[2009/06/01] Iterative 서버와 에코서버 1. TCP 서버/클라이언트 함수호출 관계 2. Iterative 서버의 구현 - Iterative 서버 : 반복해서 클라이언트의 요청을 처리한다. 3. Iterative 서버의 코드 Template 4. echo 서버/클라이언트의 구현 - 에코 서버/클라이언트의 기능 더보기
[2009/05/31] 예제소스(helloworld_client.c) /* helloworld_client.c */ #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char **argv) { int sock; struct sockaddr_in serv_addr; char message[30]; int str_len; if(argc!=3) { printf("Usage : %s \n", argv[0]); exit(1); } sock=socket(PF_INET, SOCK_STREAM, 0); if(sock == -1) error_handling("scoket() error"); memset(&serv_addr, 0, sizeof(se.. 더보기
[2009/05/31] TCP 기반 클라이언트의 구현 1. 클라이언트의 기본적인 함수 호출 순서 2. 연결 요청 함수 - 소켓과 목적지 주소에 대한 정보를 마련 해 두고 나서 연결 요청을 시도 한다. #include int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); (리눅스) #include int connect(SOCKET s, const struct sockaddr FAR *name, int namelen); (윈도우) 더보기