网络编程不能这样对等用read和write. 有时候因为网络问题,要循环收很多次才能的都所需的内容。对于你的问题是你的buf开得够大,network又很通畅,所以一次就收回来了。
1)如果是文本,可以用StreamWriter把每次所需的内容用WriteLine写,然后用StreamReader的ReadLine收
2) 如果binary, 可以用一个msg header表示有多少字节,收的时候循环收到所需字节或stream结束,就停止(用一个函数包装NetworkWtream.Read)。