酷!學園
歡迎光臨,
訪客
。請
登入
或
註冊帳號
。 您沒有收到
認證信
嗎?
一小時
一天
一週
一個月
永遠
請輸入帳號, 密碼以及預計登入時間
最新消息:
Study Area Facebook粉絲團
http://www.facebook.com/sataiwan
首頁
說明
搜尋
登入
註冊
酷!學園
»
技術討論區
»
程式討論版
»
C/C++程式設計討論區
(板主:
elleryq
) »
主題:
socket 會收到重複的字串
« 上一篇
下一篇 »
列印
頁: [
1
]
作者
主題: socket 會收到重複的字串 (閱讀 5917 次)
0 會員 與 1 訪客 正在閱讀本文。
casa
懷疑的國中生
文章數: 41
socket 會收到重複的字串
«
於:
2014-01-04 13:32 »
學長好...
想請問一下,我目前有自己寫了一個 socket server & client 程式
大部分時候,傳輸沒問題
server每一秒也會傳 echo 的字給 client 的 (heartbeat)
但是... 好像在 server loading 高還是網路 loading 高的時候
server會突然送給 client "echoechoecho" 之類,就是重複很多 echo 的字給 client (重複的長度不一定)
不曉得我有什 麼可以改善的地方嗎? 可以請學長指點一下嗎?
另外,想請問學長,在socket programming 時,如果 server 送給 client 的東西, client 沒收到,也沒跟 server 講(網路壅塞的情形時),一般來說,server 該如何處理? 總不能 exit (1) 吧? 單純重送嗎?
謝謝學長~~
記錄
twu2
管理員
俺是博士!
文章數: 5416
性別:
Re: socket 會收到重複的字串
«
回覆 #1 於:
2014-01-04 15:33 »
tcp? udp?
不管是那一個, 似乎也不會出現你說的某些情形....
最有可能就是.... 你程式寫錯了.
記錄
Tommy 碎碎念...
casa
懷疑的國中生
文章數: 41
Re: socket 會收到重複的字串
«
回覆 #2 於:
2014-01-05 23:50 »
不好意思... 我想我的程式是有問題...
只是,我還真不知道該怎麼辦... 還請學長們指導一下...
首先,我是用 tcp 來傳的
現在的問題是,一般時候傳的字看起來是沒問題
只是,在某些時候,心跳封包會從本來是 echo 4個字元變成 echoecho (重複 echo n 次)
其他封包我是沒看到有這種情形... (不過,心跳封包是每一秒就送一次,頻率是比較高)
想請問的是...
1. 我是不是送出 echo 後, 該清 buffer?
2. 送出 echo 後, client 沒收到的話,這個已經送出的 echo 會怎麼辦? (等等 會自動重送嗎? 誰會負責重送呢?)
3. 送出 echo 後, client 沒收到的話, server 該怎麼辦?
感謝幫忙
記錄
twu2
管理員
俺是博士!
文章數: 5416
性別:
Re: socket 會收到重複的字串
«
回覆 #3 於:
2014-01-06 08:57 »
你覺得程式寫錯了, 沒看到原始碼的人會知道是那兒寫錯了嗎?
1. 不用.
2. 看怎麼寫.
udp => 送了就是成功的, 要程式自己去檢查是不是有掉封包.
tcp => 如果對方沒收到, 發送端不會得到成功的結果.
3. 看你用那一種方式寫, server 要怎麼辦? 看你想寫成怎麼辦就怎麼辦吧.
記錄
Tommy 碎碎念...
zelda
憂鬱的高中生
文章數: 92
Re: socket 會收到重複的字串
«
回覆 #4 於:
2014-01-09 00:09 »
剛好有在寫tcp socket
先建立一個基本觀念
socket不是傳一個packet,然後收一個packet
client在收的時候有可能一次會超過一個
抓封包是最直接的方式
驗證到底是否server送出非預期的資料
記錄
列印
頁: [
1
]
« 上一篇
下一篇 »
酷!學園
»
技術討論區
»
程式討論版
»
C/C++程式設計討論區
(板主:
elleryq
) »
主題:
socket 會收到重複的字串