MYSQL_OPT_RECONNECT: MySQL Connect가 끊겼을 때, 자동으로 다시 접속 될 수 있도록 설정해주는 옵션.12my_bool bReconnect = 1;mysql_options(&mysql, MYSQL_OPT_RECONNECT, &bReconnect);cs 기존 mysql_ping(...) 함수는 DB서버와 연결이 되어있는지 확인을 하고 그 결과를 리턴하는 함수이다.그러나, 해당 옵션을 사용하게 되면 mysql_ping(...) 함수 자체적으로 연결을 확인 하고 연결이 안되어 있으면 자동으로 Reconnect 해주는 함수로 바뀌게 된다.12345if (mysql_ping(&mysql) != 0){ printf("[%d] %s \n", mysql_errno(&mysql), mysql_e..
명령어 touch파일의 시간 정보를 변경하는 명령어. 크기가 0인 파일을 생성하는 용도로 자주 사용. touch [옵션] 파일이름 퍼미션d : 디렉토리- : 파일l : 링크 퍼미션은 맨 처음 한글자를 제외한 뒤의 문자 3개씩이 각각 파일 소유자에 권한, 그룹에 대한 권한, 그 외의 사용자에 대한 권한을 나타낸다.퍼미션은 숫자로도 표한할 수 있다. r 4 w 2 x 1 - 0 rwxr-xr-x는 4+2+1, 4+0+1, 4+0+1 이므로 755로 표현된다.
소켓에서 설정할 수 있는 다양한 옵션들 Protocol Level Option Name get set SOL_SOCKET SO_SNDBUF O O SO_RCVBUF O O SO_REUSEADDR O O SO_KEEPALIVE O O SO_BROADCAST O O SO_DONTROUTE O O SO_OOBINLINE O O SO_ERROR O SO_TYPE O IPPROTO_IP IP_TOS O O IP_TTL O O IP_MULTICAST_TTL O O IP_MULTICAST_LOOP O O IP_MULTICAST_IF O O IPPROTO_TCP TCP_KEEPALIVE O O TCP_NODELAY O O TCP_MAXSEG O O 설정 상태 정보를 가져오는 함수 12345678int getsockop..
사용 이유: IP주소는 상대적으로 변경이 잦다. 서버의 IP주소가 변경되면, 클라이언트 프로그램에 들어가 있는 IP 주소를 변경하고 다시 컴파일 한 다음 재배포를 해야 한다. 반면, 도메인 이름은 일단 등록하고 나면, 유지하는 동안 절대 다른 누군가에게 할당되지 않는다. 즉, IP 주소가 변경 되어도 도메인 이름이 유지되는 동안은 도메인 이름을 DNS 서버를 통해서 IP주소로 변환하여 도메인 이름을 통해 서버에 접속할 수 있도록 해준다. 도메인으로 IP주소 알아내기1struct hostent* FAR gethostbyname(_In_ const char *name);cs: 이 함수의 인자로 변환하고자 하는 도메인 이름을 전달한다.리턴 값은 성공 시 hostent 구조체의 포인터를 리턴하고, 실패 시 NU..
호스트 A가 자신이 전송해야 할 모든 데이터를 전송하고 나서 출력 스트림을 종료한다.그러나 입력 스트림은 종료하지 않았기 때문에 호스트 B로부터 데이터를 수신할 수 있다.자신이 보내고자 하는 데이터를 다 보냈다 하더라도 상대방이 나에게 보낼 데이터가 있을지도 모른다는 생각에 입력 스트림은 종료하지 않고, 출력 스트림만 종료가 가능한다 => 이것을 가능하게 하는 기능이 shutdown() 함수이다. 1int shutdown(_In_ SOCKET s, _In_ int how);css : 종료하고자 하는 소켓의 소켓 핸들how : 종료 모드0 : SD_RECEIVE : 입력 스트림 종료1 : SD_SEND : 출력 스트림 종료2 : SD_BOTH : 입출력 스트림 종료
UDP: UDP는 특별한 경우가 아니면 하나의 소켓을 사용한다. 하나의 소켓을 통하여 여러 호스트들과 데이터를 송/수신할 수 있다. UDP 기반의 데이터 입/출력 함수: UDP 소켓은 연결 상태를 유지하지 않으므로, 데이터를 전송/수신 하는 함수 호출 시 반드시 보내고자/받고자 하는 곳의 주소 정보를 포함해야 한다.123456789int sendto( _In_ SOCKET s, _In_ const char *buf, _In_ int len, _In_ int flags, _In_ const struct sockaddr *to, _In_ int tolen); Colored by Color Scriptercs => 성공 시 전송된 바이트 수 리펀, 실패시 -1 리턴 12345678int recvfrom( _I..
LINK 계층 [피지컬 영역]LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역. 물리적인 연결IP 계층 [네트워크 영역]경로 선택.목적지에 데이터를 보내기 위해 중간에 어떠한 경로를 거쳐갈 것인가 해결.데이터의 전송 순서나 오류 발생에 대해서 전혀 관심을 두지 않음.TCP/UDP 계층 [트랜스포트 영역]데이터를 전송하는 방법을 정의.신뢰적인 데이터 전달 프로토콜의 구축. ==> RDTGo-Back-NSelective repeat어플리케이션 계층 [어플리케이션 영역]데이터 전송에 관련된 약속(규칙) 확립.소켓 프로그래밍.
Port: IP 주소 정보만을 가지고는 수신한 데이터 패킷을 메신저 프로그램에 전달할 것인지, 아니면 스트리밍 동영상 재생 프로그램에 전달해 줄 것인지 구분하지 못한다. 이를 구분하기 위한 것이 바로 Port이다. 32비트 IP주소로는 네트워크상에 존재하는 호스트를 구분하게 되고, 16비트 Port 정보로는 호스트 내에서 실행되고 있는 프로그램을 구분하게 된다. 이는 동일 호스트 내에서의 논리적인 할당일 뿐이다. 즉, 프로세서간 통신 또는 어떠한 프로세서에 데이터 패킷을 전달할 것인지에 결정하는데 사용된다. TCP 소켓과 UDP소켓은 Port를 서로 공유하지 않으므로 중복되어도 상관 없다. 주소 정보 구조체12345678typedef struct sockaddr_in { ADDRESS_FAMILY sin..
1int socket(int domain, int type, int protocol);cs 12345SOCKET WSAAPI socket( _In_ int af, _In_ int type, _In_ int protocol);csdomain : 생성할 소켓이 통신을 학 위해 사용할 프로토콜 체계 설정. 프로토콜 체계 정의 PF_INET IPv4 인터넷 프로토콜 PF_INET6 IPv6 인터넷 프로토콜 PF_LOCAL Local통신을 위한 UNIX 프로토콜 PF_PACKET Low level socket을 위한 인터페이스 PF_IPX IPX 노벨 프로토콜 PF_LOCAL >> 유닉스 계열의 시스템에서 시스템 내부의 프로세스들끼리 통신을 하기 위한 용도로도 사용 될 수 있음.type : 소켓이 데이터를 전송하..
파일 디스크립터 : 시스템이 만들어 놓은 것을 가리키기 좋게 하기 위해 시스템이우리들에게 건네주는 숫자에 지나지 않는다.--> 디스크립터란 용어 대신에 핸들이라는 표현도 함께 사용된다. 리눅스 [디스크립터] / 윈도우즈 [핸들] 윈도우즈와 리눅스의 입/출력 함수리눅스는 소켓이나 파일이나 모두 파일로 간주하기 때문에, 시스템 입/출력 함수은 write()와 read()함수를 사용해서 어디로든지 데이터를 전송하고 수신할 수 있다. 따라서, 소켓이든 파일이든 생성을 하면 파일 디스크립터가 리턴된다. 윈도우즈는 BSD 계열 유닉스 소켓을 참고로 하여 설계되었다. 따라서 BSD소켓과의 호환성을 위해 _read(), _write() 함수를 제공하고 있으나 거의 사용되지 않고, 또한 적절하지도 않다. 윈도우즈는 소켓..