getsockopt

    0熱度

    1回答

    我是Linux新手,想了解recv()是如何工作的。嘗試了一個我無法清楚地找到解釋的場景。我希望有人能夠啓發我。這裏是場景: 使用TCP套接字在兩個進程(發送者和接收者)之間發送5MB的數據。我在運行Linux的i.MX6 Sabrelite板上執行這些過程。 Sender.cpp: char buffer[5MB]; send(sendSocket, (void*) buffer, 5 MiB

    0熱度

    1回答

    我遇到了一個問題,當我使用函數getsockopt來獲取MSS時,我得到了一個負數(或0)。但功能是成功的,套接字是正確的值hSocketService是正確的和工作。 ,所以我就: getsockopt OK Taille maximale d'un segment = -13312 下面是代碼: int tailleMsgRecu, nbreBytesRecus, finDetectee

    2熱度

    1回答

    我正在接受HTTP請求並將它們轉發到目標上的項目。我們使用Linux(2.6.35.14-106.fc14.x86_64)和TPROXY。我會在下面詳細說明。 我看到的問題是,偶爾(1000次中的1次,有時是100萬次中的1次),Linux將返回對等地址作爲目標地址。 有沒有人見過這種情況?我從2007年開始在網絡上看到一個音符,所以我認爲這可能有點過時。 我有以下代碼(請原諒這裏顯示的不一致的方

    6熱度

    2回答

    獲取套接字系統調用(如recv)錯誤,哪個更好(性能級別)? 使用普通的老errno 或者使用SO_ERROR作爲getsockopt() OPTNAME? 我認爲errno(在我的系統上定義爲__error())速度更快,因爲它不是系統調用。我對嗎 ? SO_ERROR的優點是:獲取後自動錯誤重置,並且我們確信錯誤只涉及我們的套接字。這更安全。 你認爲哪一個更好?兩者之間的表現真的不同嗎?

    3熱度

    2回答

    當用SO_RECVBUF調用setsockopt,然後轉身用SO_RECVBUF調用getsockopt時,它似乎告訴我它將緩衝區大小設置爲我要求設置的兩倍。有人知道爲什麼這可能是? 代碼問題: https://gist.github.com/rdp/8443238 輸出: setting it as 2222 [udp @ 0x1a72ec0] end receive buffer size

    2熱度

    1回答

    我想檢測傳入的Internet數據包的IP選項。這是我的代碼。 //#define IPPROTO_IP 0 //#define IP_OPTIONS 68 #define SENDER_PORT_NUM 53 #define SENDER_IP_ADDR "127.0.0.1" #define true 1 static void bail(const char *error) {

    4熱度

    1回答

    我試圖用setsockopt將IPTOS的值設置爲IPTOS_THROUGHPUT。致電setsockopt致電0。但getsockopt顯示IP_TOS值設置爲1,這與IPTOS_THROUGHPUT(0x8)不同。有沒有人知道可能導致setsockopt和getsockopt中IPTOS值不匹配的原因? 這裏的日誌輸出: 設置DSCP標記在插座26 在插座26 setsockopt的8個返回0

    2熱度

    2回答

    假設我從socket(2)得到了一個文件描述符,並且我已經對它做了connect(2) - 以後有什麼辦法可以確定(從正在運行的程序中)哪個網絡設備可能用於底層傳輸?在fd上調用stat(2)給出的設備號碼爲0; ioctl(2)或getsockopt(2)選項都不適用。

    1熱度

    1回答

    有誰知道是否有現有的庫,允許我調用getsockopt以獲取iptables已通過我的Java應用程序重新路由的套接字的目標IP? Here's a similar question在Netty郵件列表中沒有得到答覆。 在C調用看起來像: getsockopt(ctx->client.fd, SOL_IP, SO_ORIGINAL_DST, &SANY_ADDR(addr), &SANY