recv

    3熱度

    1回答

    我剛剛在C中學習套接字/網絡編程,並遇到recv()函數導致一些意外行爲(至少對我而言意外)的情況。 我有設置了插座的服務器程序,像這樣以recv()呼叫: bytes_received = recv(connected, recv_data, 5, 0); recv_data是5字節的緩衝區。 我的客戶端程序使用send()發送數據,它的發送緩衝區是1024字節,但由於它是從標準輸入讀取的,

    0熱度

    1回答

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

    2熱度

    2回答

    我讀到它應該是安全的,從不同的線程併發,但我的程序有一些奇怪的行爲,我不知道什麼是錯的。 我有併發線程與客戶端插座 一個通信做着發送到插座 做一個選擇,然後從同一插座 的recv因爲我仍然在發,客戶端已經收到數據並關閉了套接字。 同時,我在該套接字上做了select和recv,它返回0(因爲它是關閉的),所以我關閉了這個套接字。但是,發送還沒有返回...因爲我在這個套接字上調用close,所以發送

    1熱度

    1回答

    我在Windows 7上實現了一個TCP/IP應用程序,它圍繞套接字recv()調用進行循環。對於少量數據(< 5 MB)它可以正常工作,但對於大數據(> 20 MB),recv會在兩者之間失敗。 詳細說明:我的應用程序的需要,TCP應用程序正在發送大量的數據,以HTTP服務器與HTTP服務器的運行進行通信,同一臺機器上都運行,在此之情況 它給誤差= 2,的recv返回0 錯誤2意味着ENOENT

    1熱度

    1回答

    這可能是一個非常愚蠢的問題,但我看不到我的錯誤在此代碼...輸出是錯誤的,1個打印: 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.000000 - 3.0

    0熱度

    1回答

    我正在C中構建一個websocket服務器。現在它遵循rfc6455規範,我設法實現了一個聊天協議,以便連接的客戶端 可以相互發送消息。爲了測試我的服務器的力量,我跑了一段JavaScript代碼來測試它是否可以每秒鐘從同一個客戶端處理幾個消息: i = ''; a = 0; t = setInterval('a++; i += ".................................

    0熱度

    1回答

    我有一臺服務器,它爲每個客戶端創建一個線程。這是線程函數,我的程序等待數據發送。如果5秒內沒有數據發送,我需要以某種方式關閉此線程。我嘗試了這種信號/報警組合,並以某種方式工作,但其餘線程函數繼續打印錯誤,因爲sClient(套接字)已關閉。我怎樣才能做這項工作,或者其他解決方案? void time_out() { char r = "-1"; printf("Time ou

    1熱度

    1回答

    我試圖製作一個在winsock中使用HTTP的程序,但我遇到了recv函數只是掛在那裏的問題。 int connect() { WSADATA t_wsa; //WSADATA structure WORD wVers = 0x0202; //version number int iError; //error number wVers = MAKEWORD(2, 2); // Set

    0熱度

    1回答

    我是從服務器發送以下數據: 31 37 38 33 00 00 00 00 00 00 00 33 34 37 78 35 74 32 71 39 37 34 79 35 74 76 38 35 67 6e 32 6d 客戶端使用winsock2.h: ... int recvbuflen = 32; char *tmpBuff = new char[recvbuflen]; int

    -1熱度

    1回答

    仍嘗試理解send()和recv()函數。爲什麼這不起作用?沒有在服務器輸出上打印出來(除了一些測試「cout」) 這基本上是我搞亂的代碼的一部分。 客戶端: char *mesg_to_send; Socket servSock; mesg_to_send = The King is Dead!"; // Establish the connection to the echo serve