winsock

    1熱度

    1回答

    我在Windows中使用多線程IOCP服務器。爲了避免處理很多未決的讀取,我在每個連接的套接字上始終只有一個wsarecv操作。總之我的設計是這樣的: 客戶端連接後,wsarecv是在連接插座貼 在執行wsarecv,數據處理連線和wsasend張貼在同一插座上 時wsasend從第2步完成(GQCS獲得通知),wsarecv重新貼。 這意味着在步驟2和步驟3之間只有一小段時間,當沒有掛起的wsa

    0熱度

    1回答

    我們有一個我們正在使用的FTP活動客戶端類,但我們試圖在 傳輸多個文件時重複使用相同的數據套接字。爲了理解這種行爲,我只使用了Microsoft的ftp.exe(Active)客戶端 ,然後我上傳了2個文件,如下所示。 當使用(活動)的FTP客戶端,客戶端發出一個命令PORT如192,168,150,80,14,178(端口3762),用於實例。然後,端口20上的服務器通過其本地端口3762連接到

    0熱度

    1回答

    我試圖創建一個UDP服務器,雖然沒有連接到它的客戶端,但它收到一個連接... (它在控制檯 - New Connection寫很多,所以我想它會得到一個新的連接突然...) #include <iostream> #include <string> #include <WinSock2.h> #include <ws2tcpip.h> #include <Windows.h> #pra

    0熱度

    1回答

    是否可以使用C/C++查看(並修改)Winsock的IPv6擴展頭? API允許我們這樣做?

    0熱度

    1回答

    我試圖設置與客戶端在同一臺計算機上運行的服務器應用程序的簡單連接。 我的代碼如下所示: void Base::Connect(string ip, string port) { int status; SOCKET ConnectSocket = INVALID_SOCKET; struct addrinfo hints; struct addrinfo

    2熱度

    1回答

    我在同一臺計算機上運行客戶端和服務器。 客戶端通過端口80連接到127.0.0.1。服務器同時在端口80上偵聽。 當我啓動客戶端並嘗試連接時,會拋出錯誤10061(主動拒絕目標計算機)。我嘗試關閉本地防火牆,但這並沒有改變任何東西。 我絕對堅持這一點。下面是連接到服務器的代碼: void Base::Connect(string ip, string port) { int statu

    0熱度

    1回答

    試圖瞭解WINSOCKET的使用Visual C++ 在這裏,我的代碼工作: while (true) { char l[1]; recv(tsock.sock, l, 1, 0); std::cout << l << std::endl; if (!l) { return; } } 但我有試着時候才能google.co

    0熱度

    2回答

    我正在使用GUI編寫單個聊天程序。我想寫一個可以接受許多客戶端的服務器。每個客戶都可以連接成功。但是,發送和接收數據存在一個奇怪的問題。我使用select()和一個線程同時處理多個套接字。如果客戶端發送一些數據給服務器,它會收到它並將其發送回該客戶端(特別是客戶端沒有「預測」)。但是服務器不會將它進一步發送給另一個客戶端(比如每個客戶端都與服務器有私人對話)。這裏是我的代碼: // this is

    0熱度

    1回答

    我正在創建一個從服務器向客戶端發送數據的TCP客戶端服務器程序(此工作正常),然後將其回顯給服務器(不會「工作正常)。當使用recv函數時,第一次接收數據的效果很好,但之後大量垃圾進入,數據本身也出現了,但是在大量垃圾中,recv/send返回值始終是正確的。除此之外,我第一次在啓動電腦後開始測試這個程序要好得多(通常是有效的)。有沒有人有關於爲什麼的想法?我相信有些緩衝區已滿或recv的不再是一

    1熱度

    1回答

    我試圖通過Winsock發送protocolbuffer文件,但我有以下問題大氣壓。 當我發送數據可能是原包「A」的序列化版本或「B」,但服務器不知道。所有proto數據包都有一個ID字段作爲第一個字段,所以我創建了一個只有ID爲字段的數據包「C」。 當服務器接收到它首先反序列化到一個「C」原對象的分組只是爲了檢查它具有的ID。之後,當服務器知道該ID時,它可以再次反序列化到正確的原始對象。 所以