新人,刚开始编程,领导要让写一个socket的东西,我根本就不懂,下载了别人的项目,不知道为什么,别人的项目在我机器上也不能运行,我服务器端用别人一个能打开的,我也不知道他那个服务器端接受我客户端传送数据的时候我要传什么样的数据,反正我先试了再说
第一个我用socket写的,连上服务器之后,发2句话就提示服务器关闭了一个现有链接
后来我继续网上找,说tcpListening和tcpClient是对socket的封装,所以客户端我就用tcpClinet,但是运行到readLine的时候就会出问题这个是链接的方法,我也不知道有没有问题,反正是链接到服务器了
                clientSockte = new TcpClient("192.168.0.203", serverPort);
                netstream = clientSockte.GetStream();
                streadReader = new StreamReader(stream);
                connected = true;然后开始向服务器发消息
                string command = "CONN|" + clientName;//+"\r\n";
                Byte[] myBytes = System.Text.Encoding.ASCII.GetBytes(command.ToCharArray());
                netstream.Write(myBytes, 0, myBytes.Length);                string serverResponse = streadReader.ReadLine();
                serverResponse.Trim();上面前面3句就是把我的用户名加上CONN表示传给服务器把?
string serverResponse = streadReader.ReadLine();这句话有问题,
serverResponse 的值为NULL
所以程序运行到serverResponse.Trim();的时候会报错。这个我该怎么办啊?

解决方案 »

  1.   

    serverResponse.Trim();
    改为:
    if (serverResponse != null)
        serverResponse.Trim();
      

  2.   

    StreamReader.ReadLine 方法
    从当前流中读取一行字符并将数据作为字符串返回。
      

  3.   

    .Trim();是去掉字符串前后的空格 值为null时自然会报错 要判断一下值是不是null 再用Trim
      

  4.   


    我是新人,什么都不懂,其实我想问的就是为什么是null,弄得我好头疼啊,
    这周因为要开发新的东西,所以这个socket领导让我先搁一边,这不星期五了,新东西做完了,又要弄这个了,好头疼啊。
      

  5.   

    服务器忙 或 网络超时丢包 就会 是null.