我一直在努力調(diào)試C#套接字應(yīng)用程序的問題。該應(yīng)用程序是我正在從事的大學(xué)作業(yè)的一部分。分配的范圍是使用原始套接字構(gòu)建Web服務(wù)器和游戲/應(yīng)用程序服務(wù)器。就我而言,網(wǎng)絡(luò)服務(wù)器提供靜態(tài)文件并充當游戲服務(wù)器的代理。服務(wù)文件似乎運行良好,但是將請求轉(zhuǎn)發(fā)到游戲服務(wù)器時,會出現(xiàn)數(shù)據(jù)傳輸問題。完整的源代碼可在GitHub上獲取以供參考。但是我認為有問題的區(qū)域是該區(qū)域,該區(qū)域嘗試從游戲服務(wù)器讀取響應(yīng)正文以響應(yīng)Web服務(wù)器的請求。以下是相關(guān)代碼:if (header.ContainsKey("content-length")){ var bodyLength = Convert.ToInt32(header["content-length"]); Console.WriteLine($"Receiving body from game server. Expecting {bodyLength} bytes"); body = ReceiveBodyData(socket, bodyLength); Console.WriteLine($"Finished receiving body from game server. Received {body.Length} bytes.");}當它執(zhí)行此代碼時,第一條消息將寫入控制臺,但是第二條消息從不打印,因為該方法ReceiveBodyData從不返回(最終在試圖讀取主體數(shù)據(jù)的無限循環(huán)中結(jié)束)。檢查游戲服務(wù)器的輸出,我發(fā)現(xiàn)連接從頭開始是關(guān)閉的,但是我不確定這是否會破壞接收者讀取數(shù)據(jù)的能力。任何人都可以協(xié)助調(diào)試此問題,請仔細確認這是我的工作,因此理想情況下,請不要編寫大量代碼。
- 1 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消