(AF_PACKET, PF_PACKET)socket을 수신전용 또는 송신전용으로 만들 수 있나요?

twinwings의 이미지

socket을 수신이나 송신 전용으로 만들 수 있나요?

shutdown()은 connection 지향인 경우만 가능하고..

shutdown으로 하니 예상했지만, 아래와 같이 되네요

    int sock_raw = socket( AF_PACKET , SOCK_RAW , htons(ETH_P_ALL)) ;
 
    if(sock_raw < 0)
    {
        //Print the error with proper message
        perror("Socket Error");
        return 1;
    }
 
    printf("%d\n", shutdown(sock_raw, SHUT_RD));
 
    /* 여기서 -1 출력 됨*/
 
    close(sock_raw);

setsockopt에 그러한 옵션이 존재하나요? 찾아보니 없는 것 같아 질문 올립니다.

cococo의 이미지

Socket Descriptor 를 pipe IO ( Named Pipe 등등 ) 에 던져줘서 만일 열린다면, 가능하지 않을까요?