1

DCCP プロトコル用に c でソケットを作成しようとしましたが、エラーに準拠していますが、プログラムを実行すると「sendto: Broken pipe」というエラーが発生します

必要なヘッダー定義を含めました。

#define SOCK_DCCP 6 #define IPPROTO_DCCP 33 #define SOL_DCCP 269

そして、ソケットを作成したい関数で

int dccp_sockfd,port_num,addr_len,yes = 1;

struct sockaddr_in PMU_addr,their_addr;

struct Lower_Layer_Details *temp_pmu = (struct Lower_Layer_Details *) temp;

unsigned char *dccp_BUF,*ptr,length[2];

unsigned int flen;

uint16_t cal_crc,frame_crc;

port_num = temp_pmu->port;

struct Lower_Layer_Details *t ;


if ((dccp_sockfd = socket(AF_INET, SOCK_DCCP, IPPROTO_DCCP)) == -1) {
    perror("socket");
    exit(1);
}

if (setsockopt(dccp_sockfd,SOL_DCCP,SO_REUSEADDR,&yes,sizeof(int)) == -1) {
    perror("setsockopt");
    exit(1); 

dccp_BUF = malloc(MAXBUFLEN* sizeof(unsigned char));

addr_len = sizeof(struct sockaddr); 
int n,bytes_read;
unsigned char *cmdframe = malloc(19);
cmdframe[18] = '\0';
create_command_frame(1,temp_pmu->pmuid,(char *)cmdframe);


if ((n = sendto(dccp_sockfd,cmdframe, 18, 0, (struct sockaddr *)&PMU_addr,sizeof(PMU_addr)) == -1)) {

    perror("sendto"); 

} else {
4

1 に答える 1