簡體   English   中英

C函數,網絡編程

[英]C function, Network programming

我有這個C函數。

void execMessage(int sockfd,void *structCHARMS, ClientData *client)
{
    ClientData *client_recv = (ClientData *) structCHARMS;

    client->local_addr=client_recv->local_addr;
    client->mode = client_recv->mode;

    char*msg;   
    CharmsMsg chmsg = {charms_msg_map[XTypes_CONFIG_PARAM].msg_code, client, 1184};
    msg = encode(&chmsg, "0.01");
    ssize_t n = 0;
    n = send(sockfd,msg,strlen(msg), 0);

}

它是從連接到TCP客戶端的經典TCP Server的主要功能調用的。 它創建一條消息(具有特定的功能編碼)並將其發送到服務器。

問題是:當將此函數插入​​到main()的相同文件中時,它可以正常工作,但是當我將此函數插入​​另一個文件中時,在程序運行時出現“段錯誤錯誤”。

誰能幫我? 謝謝

如前所述,您需要弄清楚該程序在哪里出現段錯誤。 現在,您創建一個本地char *並將指針的地址傳遞給encode函數。 你有該功能的代碼嗎? 在我看來,您似乎想從該函數返回一個指針,並在其中返回已編碼的c字符串。 發送后,您將需要分配該內存,以免泄漏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM