1樓:匿名使用者
1、read放在while裡面,也可以非同步接收,
2、你的第二個問題可以用「訊息邊界」來解決,不用非同步的話,必須是你一條,我接收,再發,不然會阻塞
3、另開執行緒接收,建議你看一下msdn,裡面有一個關於執行緒的返回值的文章
2樓:匿名使用者
問題3:例項化client後要開一個執行緒來讀寫資料的。
1:對,read放在while迴圈 當然這樣cpu會掛,不過read會讓執行緒掛起 還需要一個推出執行緒的方法,就是while迴圈何時break 需要manualresetevent這個類來控制
2: read是阻塞的,伺服器不發訊息read一直阻塞,read一個byte是你自己指定 比如
byte buffer=new byte[512] read的第三個引數size就是512
比如伺服器發來1025個位元組 第一次read512個 第二次read512個 第三次read1個 第四次read會掛起了 接受了多少個位元組? read返回int 相加肯定是1025了
目的是快取 如果tcpserver發來1g的資料 client不用快取讀肯定掛了。
3樓:匿名使用者
1不要;2while一直,byte.length;3多執行緒單socket
4樓:克里斯採
要有一個單獨的執行緒用於資料的讀入
關於c語言的程式設計,關於C語言的程式設計問題?
執行示例 原始碼如下 include stdio.h int main printf n return 0 望採納。int用來定義整型變數 整數 float用來定義浮點型變數 實數 float和int一樣是用來定義變數的,它不是函式.賦值語句value 700 weight 14.5833之所以不在...
C語言程式設計問題,c語言程式設計問題?
小黑哎啊 include include 數學函式標頭檔案 include void fun1 函式宣告 void fun2 int main while 1 int x for int i 0 i 20 i printf printf n1,求整數n的立方 n printf 2,判斷是否能構成三角...
c語言程式設計問題,c語言程式設計問題?
聽不清啊 include int main int i,n double sum 0 scanf d n for i 1 i n i sum i i 1.0 i 1 printf f n sum return 0 威爾史密斯 include void main c語言程式設計問題 手機使用者 解題思...