求助关于tcpClient的几个类

shaoxinggirl 2012-05-07 08:51:36
新人,刚开始编程,领导要让写一个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();的时候会报错。

这个我该怎么办啊?
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
只在此山中 2012-05-12
  • 打赏
  • 举报
回复
服务器忙 或 网络超时丢包 就会 是null.
shaoxinggirl 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

没有获取到值,当然为空。添加楼上的检测,可以避免报错,但是你还是要检查下为什么没有得到值
[/Quote]

我是新人,什么都不懂,其实我想问的就是为什么是null,弄得我好头疼啊,
这周因为要开发新的东西,所以这个socket领导让我先搁一边,这不星期五了,新东西做完了,又要弄这个了,好头疼啊。
只在此山中 2012-05-07
  • 打赏
  • 举报
回复
serverResponse.Trim();
改为:
if (serverResponse != null)
serverResponse.Trim();
shaoxinggirl 2012-05-07
  • 打赏
  • 举报
回复
报错信息是:由于以前的函数求值超时,函数求值被禁用。必须继续执行才能
orochiheart 2012-05-07
  • 打赏
  • 举报
回复
.Trim();是去掉字符串前后的空格 值为null时自然会报错 要判断一下值是不是null 再用Trim
orochiheart 2012-05-07
  • 打赏
  • 举报
回复
StreamReader.ReadLine 方法
从当前流中读取一行字符并将数据作为字符串返回。
LOVE_GG 2012-05-07
  • 打赏
  • 举报
回复
没有获取到值,当然为空。添加楼上的检测,可以避免报错,但是你还是要检查下为什么没有得到值

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧