簡體   English   中英

recvfrom 調用時出現分段錯誤

[英]Segmentation fault on recvfrom call

我有一個 UDP 服務器實現,我在recvfrom調用中遇到分段錯誤。

#define SIZEOF      sizeof
#define PKTSIZE    65535

char tmp_buf[PKTSIZE];
struct sockaddr_storage tmp_from;
int tmp_fromlen = 0;
int tmp_bytes;
tmp_bytes = truncate_size_t_to_int(recvfrom(fd, tmp_buf,
                      SIZEOF(tmp_buf), 0,
                      (struct sockaddr *) &tmp_from,
                      (socklen_t *) &tmp_fromlen));

在此之前綁定和連接都成功。它是一個單線程進程。 這個recvfrom調用有什么問題。 我需要為recvfromSIGALRM信號處理嗎? truncate_size_t_to_int 用於 size_t 到 int。

recvfrom()可以返回 -1。 如果不將recv()/recvfrom()/recvmsg()的結果存儲到變量中,測試它是否為 -1,在 TCP 的情況下測試為零,並且僅當它為正時,您就無法編寫正確的網絡代碼你能繼續執行假設它的代碼嗎?

暫無
暫無

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

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