[問題] UDP echo client 除錯

看板C_and_CPP (C/C++)作者 (蕃茄醬)時間2年前 (2022/01/01 04:02), 2年前編輯推噓1(1017)
留言18則, 3人參與, 3年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Linux 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) G++ 問題(Question): 各位版友好,我正在寫一個UDP echo client 題目的spec如下:https://quiz.zoolab.org 其中的第三題,Level 2: Welcome, again 題目運行的server環境為 ssh test@quiz.zoolab.org,密碼z3wk 這是我運行我的程式後的狀況 首先先用UDP隨意送一段訊息給server後 就會進入echo解題的畫面。 https://i.imgur.com/2xkdDCY.png
再來進入到解題畫面時會看到錯誤畫面如下 https://i.imgur.com/94qxMaD.png
我有試著把我接收到的buffer跟送出去的buffer印出來debug, 但是沒有找到什麼異常,想請版友幫我看看有沒有什麼我沒注意到的部分。 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) http://codepad.org/yDPQhV5k 補充說明(Supplement): 4:39更新 我把回傳的buffer轉成string後再傳就突然好了 ...我不理解,如果有版友知道原因請賜教。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.89.105 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1640980944.A.96B.html ※ 編輯: ketchupgood (39.12.99.74 臺灣), 01/01/2022 04:42:01

01/01 09:52, 3年前 , 1F
這是期末考吧?
01/01 09:52, 1F

01/01 10:12, 3年前 , 2F
是期末考 考完開放回去補交七折 所以類似作業吧
01/01 10:12, 2F

01/01 10:47, 3年前 , 3F
雖然不是很確定是不是問題所在: 思考一下 46 行你傳的長度
01/01 10:47, 3F

01/01 10:48, 3年前 , 4F
到底對不對; 是不是有真的「echo」回去所有東西
01/01 10:48, 4F

01/01 10:49, 3年前 , 5F
啊, 或者該說: 是不是多傳了東西回去
01/01 10:49, 5F

01/01 11:36, 3年前 , 6F
如果你指的是換行的話 那是要加的 我後來正確的版本
01/01 11:36, 6F

01/01 11:36, 3年前 , 7F
也有加
01/01 11:36, 7F

01/01 11:40, 3年前 , 8F
我把現在的buffer加上反斜線0 轉成string後再丟buffe
01/01 11:40, 8F

01/01 11:40, 3年前 , 9F
r.c_str()後就正確了
01/01 11:40, 9F

01/01 12:20, 3年前 , 10F
如果收4096 bytes,你的\n會加在buffer外,是否是因此出錯
01/01 12:20, 10F

01/01 12:20, 3年前 , 11F
01/01 12:20, 11F

01/01 13:50, 3年前 , 12F
測資內沒有數字那麼大的 所以應該不是 不過這部分寫
01/01 13:50, 12F

01/01 13:50, 3年前 , 13F
法可以改善沒錯
01/01 13:50, 13F

01/01 18:07, 3年前 , 14F
另外,sendto傳送的長度是sizeof(udp_buffer),也就是4096
01/01 18:07, 14F

01/01 18:07, 3年前 , 15F
,是否應該用n+1或n+2?即收到的字串長度加\n和\0
01/01 18:07, 15F

01/01 18:17, 3年前 , 16F
還有個問題就是如果收到的是 hello\0world這樣的data,是
01/01 18:17, 16F

01/01 18:18, 3年前 , 17F
要回傳hello\n還是hello\0world\n?因為你說轉string就行
01/01 18:18, 17F

01/01 18:18, 3年前 , 18F
,也許有這樣的case
01/01 18:18, 18F
文章代碼(AID): #1Xps7Gbh (C_and_CPP)
文章代碼(AID): #1Xps7Gbh (C_and_CPP)