2011-02-01 81 views
0

我正在使用C中的UNIX套接字爲一個類的客戶端/服務器ftp程序工作。我必須將我的數據發送到我的教授正在使用的此過程來模擬網絡交通(稱爲「巨魔」)。它需要一個特殊的標題。所以我打算試着做一個頭部結構,然後粘貼我的數據...但是我的編譯器總是給我這個錯誤...通過UDP發送一個結構C中的UNIX套接字C

「無法轉換爲指針類型」(指的是代碼的最後一行)

我想不出什麼我做錯了......

/* make troll header */ 
    struct sockaddr_in dest, troll; 
    struct { 
     struct sockaddr_in header; 
     char body[MAXDATASIZE]; 
    } message; 
    message.header.sin_family = htons(AF_INET); 
    message.header.sin_port = htons(SERVER_PORT); 
    bcopy((char *)&server_name.sin_addr, (char *)&message.header.sin_addr, sizeof(server_name.sin_addr)); 

    troll.sin_family = AF_INET; 
    troll.sin_port = htons(TROLL_PORT); 
    bcopy((char *)&name.sin_addr, (char *)&troll.sin_addr, sizeof(name.sin_addr)); 

    /* send mini_buffer to troll */ 
    memcpy(message.body, mini_buffer, MAXDATASIZE); 

    int result = sendto(troll_sock, (char *) &message, sizeof(message), 0, (struct sockaddr *) troll, sizeof(troll)); 

回答

4

您需要將巨魔的地址 - 而不是對象本身。試試:...(struct sockaddr *)(& troll)...

相關問題