개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.06 22:23

socket_sendmsg 함수 사용 시 오류 발생 원인 및 해결 방법

목록
  • Haskell연구가 2일 전 2025.05.06 22:23
  • 7
    1
제가 socket_sendmsg 함수를 사용하여 데이터를 전송하려고 합니다.
하지만, 데이터가 전송되지 않고 오류가 발생하여 해결 방법을 찾고 있습니다.

socket_sendmsg 함수를 사용할 때, 소켓 옵션을 설정하는 부분을 이해하지 못하여 오류가 발생하였습니다.
소켓 옵션을 설정하는 방법을 알려주시면 감사하겠습니다.
특히, MSG_DONTROUTE 옵션을 사용할 때, 데이터 전송이 되지 않는 이유를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    socket_sendmsg 함수를 사용할 때, 소켓 옵션을 설정하는 방법은 다음과 같습니다.

    1. 소켓 옵션을 설정하기 위해서는 socket 옵션 함수인 setsockopt을 사용합니다.
    2. setsockopt 함수의 첫 번째 인자는 소켓 파일 디스크립터를 나타내는 파일 디스크립터입니다.
    3. 두 번째 인자는 옵션의 타입을 나타내는 옵션 레벨입니다.
    4. 세 번째 인자는 옵션의 이름을 나타내는 옵션 이름입니다.
    5. 네 번째 인자는 옵션의 값을 나타내는 옵션 값입니다.

    MSG_DONTROUTE 옵션을 사용할 때, 데이터 전송이 되지 않는 이유는 MSG_DONTROUTE 옵션을 사용하면 데이터가 라우팅을 거치지 않고 바로 전송되기 때문에, 라우팅 정보가 없을 때 데이터 전송이 되지 않는 것입니다.

    MSG_DONTROUTE 옵션을 사용하기 전에, 라우팅 정보를 설정해야 합니다. 라우팅 정보를 설정하기 위해서는 route add 명령어를 사용합니다.

    예를 들어, 라우팅 정보를 설정하기 위해서는 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        int sock = socket(AF_INET, SOCK_DGRAM, 0);
    
        struct sockaddr_in addr;
    
        addr.sin_family = AF_INET;
    
        addr.sin_port = htons(1234);
    
        inet_pton(AF_INET, "192.168.1.100", &addr.sin_addr);
    
    
    
        // MSG_DONTROUTE 옵션 설정
    
        int optval = 1;
    
        setsockopt(sock, SOL_SOCKET, SO_DONTROUTE, &optval, sizeof(optval));
    
    
    
        // 라우팅 정보 설정
    
        system("route add -net 192.168.1.0/24 gw 192.168.1.1");
    
    
    
        // 데이터 전송
    
        char buf[] = "Hello, World!";
    
        sendto(sock, buf, strlen(buf), 0, (struct sockaddr *)&addr, sizeof(addr));
    
    
    
        return 0;
    
    }
    
    


    위의 예제에서 MSG_DONTROUTE 옵션을 설정하고 라우팅 정보를 설정한 후 데이터를 전송합니다.

    2025-05-06 22:24

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 17,924건 / 46 페이지

검색

게시물 검색