본문 바로가기

tcp7

윈도우 소켓 에러처리 (FormatMessage) 윈도우 환경에서는 FormatMessage 함수와 WSAGetLastError 함수를 이용하여 에러정보를 확인할 수 있다. 소켓 관련 함수를 사용하다가 발생한 에러 번호를 확인하기 위해서는 WSAGetLastError() 함수를 이용해야 한다. #include int WSAGetLastError(void); 이 함수를 이용하여 에러 번호를 리턴하게 되는데, 그 번호를 이해하기는 어렵다. 이 정수형 값을 이해할 수 있는 문자열 형태로 변환해는 주는 함수가 바로 FormatMessage() 함수이다. DWORD WINAPI Format Message( _In_ DWORD dwFlags, _In_opt LPCVOID lpSource, _In_ DWORD dwMessageID, _In_ DWORD dwLangu.. 2017. 6. 11.
TCP 에코 서버 (윈도우) TCP 서버 & 클라이언트 예제 - TCP server & clinet example 리눅스 버전 및 자세한 기본적인 설명은 TCP 에코 서버 & 클라이언트 (리눅스) 2017. 6. 11.
TCP 에코 서버 예제 (리눅스) TCP 에코 서버 예제 - TCP echo Server example 서버 전체 소스코드 #include #include #include #include #include #include #include #define PORT 9999 int main(void){ int sock, client_sock; struct sockaddr_in addr, client_addr; char buffer[1024]; int len, addr_len, recv_len; if((sock = socket(AF_INET, SOCK_STREAM, 0)) 0){ printf("clinet ip : %s\n", inet_ntoa(client_addr.sin_addr)); if((recv_len = recv(client_sock, .. 2017. 6. 11.
TCP 프로토콜 (2) TCP는 어떠한 역할을 할까?TCP의 기능에대해서 알아보자.*** 참고 사항 게시글 http://nroses-taek.tistory.com/82 ***TCP가 하는 일 ◆ 주소지정/다중화 : 많은 애플리케이션이 TCP를 전송 프로토콜로 사용한다. 그래서 TCP와 쌍을 이루는 UDP와 마찬가지로, 여러 프로세스에서 온 데이터를 다중화하여 하위 네트워크 계층 프로토콜로 송신되도록 하는 것은 TCP의 중요한 임무다. 동시에 이들 상위 계층 애플리케이션은 TCP 포트를 통해 식별된다. ◆ 연결 수립, 유지, 종료 : TCP는 장비가 데이터를 이동시킬 수 있는 연결을 협상하고 수립하기 위해 따라야 할 절차 모음을 제공한다. 일단 연결이 수립되면 TCP는 연결을 유지하고 혹시 발생할지 모르는 문제를 처리하기 위한 .. 2017. 6. 10.
TCP 프로토콜 (1) TCP 프로토콜TCP(Transmission Control Protocol) OSI 7 계층에서 4계층 전송 계층(Transprot Layer)에서 사용되는 통신규약으로 어떤 컴퓨터가 다른 컴퓨터와 데이터를 주고받기 위한 통신 프로토콜의 일종이다.전송 계층에서 동작하는 프로토콜은 그보다 상위에 있는 소프트웨어 애플리케이션이 인터네트워크를 사용할 수 있도록 몇 가지 중요 서비스를 제공한다. 전송 계층 프로토콜은 일반적으로 원거리에 있는 소프트웨어 서비스 간에 연결을 수립하고 관리하게 된다. 많은 상위 계층 애플리케이션은 신뢰할 수 있는 방법으로 데이터를 보낼 필요가 있다. 에러 보정, 손실된 데이터, 흐름 관리에 신경 쓰지 않고 데이터를 보낼 수 있기 때문이다.- 연결 지향 -TCP 프로토콜은 통신을 시작.. 2017. 6. 9.
bind 함수 Windows #include Linux #include #include Function Prototype int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); bind함수는 서버에서 소켓 연결에 사용되는 주소를 소켓에 할당하기 위해서 사용되는 함수이다. 첫 번째 인자는 소켓을 생성한 후 리턴되는 소켓 디스크립터. 두 번째, 세번째 인자는 connect함수에서 설명한 sockaddr 구조체의 주소값과 구조체의 길이이다. connect()함수를 호출하면서 전달하는 sockaddr 구조체의 주소값은 서버의 IP및 PORT번호가 저장된 구조체의 주소값이지만, bind 함수에서 사용되는 주소값은 소켓 디스크립터에 할당하는 즉, 연결받고자 하.. 2017. 3. 5.