本帖最后由 memset2011 于 2011-04-25 10:46:03 编辑

解决方案 »

  1.   

    试试:NetworkStream netStream = client.GetStream();
    StringBuilder sb = new StringBuilder();
    int read = 0;
    do
    {
        raed = netStream.Read(strNameBuf,0,64);
        sb.AppendFormat("{0}",Encoding.UTF8.GetString(strNameBuf,0,read));
    }
    while(netStream.DataAvailable);
    MessageBox.Show(sb.ToString());
    netStream.Flush();
      

  2.   

    NetworkStream 是流数据不是一组数据,所以你一次只能说收到一个字符
      

  3.   

    NetworkStream netStream = client.GetStream();
    StringBuilder sb = new StringBuilder();
    int read = 0;
    do
    {
          read = netStream.Read(strNameBuf, 0, 64);
          //MessageBox.Show(sb.ToString());
          Thread.Sleep(1000);
          sb.AppendFormat("{0}", Encoding.UTF8.GetString(strNameBuf, 0, read));
    }
    while (netStream.DataAvailable);
    MessageBox.Show(sb.ToString());
    netStream.Flush();这样就好了,看似有点囧,不知道为啥
      

  4.   

    Java那边是用异步方式发送的吗?
      

  5.   

    将所需传输的数据放到XML里面,然后再另一端解析XML.
      

  6.   

    这样一来,客户端那边之后的接收数据的InputStream.read(fileBuf);的阻塞也没有了,应该就是服务端读取数据不完全导致的
      

  7.   

    1楼的应该可以NetworkStream netStream = client.GetStream();
    StringBuilder sb = new StringBuilder();
    int read = 0;
    do
    {
        raed = netStream.Read(strNameBuf,0,strNameBuf.Length);