C_Sharp 板


LINE

※ 引述《cole945 (躂躂..)》之銘言: : 因為原本的socket和NetworkStream本來就已經是non-buffered.. : 所以應該不會有等待的問題.. : 問題可能是, 你除了用NetworkStream, 又另外使用其他的IOStream : 來把資料導到 NetworkStream, 但這個 IOStream 是buffered, : 那就有可能發生這個問題.. : 如果是這樣的話, 就呼叫該 IOStream的 Flush() 來強制處裡IO.. : 這種問題通常是發生在Write而不是Read.. : 如果不是這樣的話, 來點code看看吧^^? 先謝謝前輩的指導 ^^ 因為原程式 code 有點長, 我把 non-blocking 改成 blocking 並簡化成下面 (結果是一樣的) /////////////////////////////////////////////////////////////////// Server Side: listener = new TcpListener(port); listener.Server.NoDelay = true; listener.Start(); client = listener.AcceptTcpClient(); stream = client.GetStream(); try { while(true) { if (stream.CanRead) { byte[] bytes = new byte[client.ReceiveBufferSize]; int dataLen = stream.Read(bytes, 0, (int)client.ReceiveBufferSize); if (dataLen >= 1) Console.WriteLine("{0}\n---", Encoding.Default.GetString(bytes, 0 \ , dataLen)); } else ................... } } catch (Exception e) { ........... } /////////////////////////////////////////////////////////////////// Client Side: try { ipendpoint = new IPEndPoint(Dns.GetHostEntry(Dns.GetHostName()). \ AddressList[0], 0); tcpclient = new TcpClient(ipendpoint); remoteEP = new IPEndPoint(IPAddress.Parse(REMOTE_IP), REMOTE_PORT); tcpclient.NoDelay = true; tcpclient.Connect(remoteEP); netstream = tcpclient.GetStream(); // while(true) { if (netstream.CanWrite) { Byte[] sendBytes = Encoding.UTF8.GetBytes("aaa"); netstream.Write(sendBytes, 0, sendBytes.Length); netstream.Flush(); sendBytes = Encoding.UTF8.GetBytes("bbb"); netstream.Write(sendBytes, 0, sendBytes.Length); netstream.Flush(); Thread.Sleep(3000); sendBytes = Encoding.UTF8.GetBytes("ccc"); netstream.Write(sendBytes, 0, sendBytes.Length); netstream.Flush(); } } } catch (Exception e) { ............... } /////////////////////////////////////////////////////////////////// 我用 VC6 寫個小程式在中間做驗證 VC6 -- Client 這邊,會正常顯示 : aaa --- bbb --- ccc --- 接著,不管是 VC6 往 Server 丟資料,或是 Client 往 Server 丟資料 Server 收到: aaabbb --- ccc --- 所以才會有此疑惑 :S --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 116.59.115.8







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP