说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

.NET技巧:用TcpClient类测试网络服务

HTML文档下载 WORD文档下载 PDF文档下载
本文介绍了TcpClient类的简单使用方法。

 

测试服务器是否在运行时非常有用的,还可用于测试服务是否正常运行。
这些应用大部分不是web services,web services可以用HttpWebRequest来测试。
FTP,SMTP/POP3邮箱等服务,你可以用TcpClient 类去测试。TcpClient类位于System.Net.Sockets库中,
因此需确认你已经在代码中引用了该库。
下面的例子测试两个邮件服务器是否正确回应:

 

测试服务器是否在运行有时是非常有用的,还可用于测试服务器中的应用服务是否正常运行。

这些应用大部分不是web services,web services可以用HttpWebRequest来测试。

FTP,SMTP/POP3邮箱等服务,你可以用TcpClient 类去测试。TcpClient类位于System.Net.Sockets库中,

因此需确认你已经在代码中引用了该库。

下面的例子测试两个邮件服务器是否正确回应:

ArrayList addrs = new ArrayList();addrs.Add("mail.northcomp.com");addrs.Add("mail2.northcomp.com");addrs.Add("mail3.northcomp.com");byte[] returnBuffer;foreach (string s in addrs){   TcpClient c = new TcpClient();   try   {      c.Connect(s, 25);      NetworkStream ns = c.GetStream();      if (ns.CanRead)      {         returnBuffer = new byte[c.ReceiveBufferSize];         int bytesRead = ns.Read(returnBuffer, 0,                                 (int)c.ReceiveBufferSize);         Console.WriteLine("Result from {0}:", s);         Console.WriteLine(Encoding.UTF8.GetString                           (returnBuffer).Substring(0, bytesRead));         ns.Close();      }      c.Close();   }   catch (Exception ex)   {      Console.WriteLine("Error connecting to {0}.", s);      Console.WriteLine("Exception:");      Console.WriteLine(ex.ToString());   }}Console.WriteLine("Mail server check completed.");
这些代码首先创建TcpClient对象,然后连接到主机的25端口(SMTP的默认端口).
检测NetworkStream能否读到数据,如果可以,将数据放入缓冲。Read函数返回正确读取了
多少数据,你可以用该值修改缓冲和剩余的空间。缓冲数据显示时需要用Encoding.UTF8.GetString方法,
否则,数据将无法正确显示。
在例子中,前面的两个地址被使用,最后一个没有。因为会产生一个错误,异常被抛出,错误显示在
控制台窗口中。如果成功,窗口中显示接收到的文字。每个连接到SMTP端口的连接都会受到来自服务器
的问候信息。可以查看返回的文字校验服务器是否响应正确。
你可以简单地改变代码,从其它端口读取数据,如FTP,POP3等,你只需要在用Connect函数连接时改变
端口号。

 

 

 

倒计时20天!金玩奖各大奖项花落谁家由你主宰 宅男程序员福利:来自纽约的28位智慧与美貌并存的IT女神 创季度记录:苹果发布第四季财报 iPhone仍是苹果商业心脏 在破晓中行走:一位盲人开发的盲人应用 腾讯云俱乐部成都站——云时代手游开发:用数据说话 首届微App峰会将在MDCC2013上举行 微信易信百度新浪等平台开发商云集 TUP Masters第七期:C++大师Lippman论编程新范式Hugo OpenCL用于13个微型计算机领域的经典案例 从测试数据来看Node.js和Java EE的性能区别 工作效率低下?业内人士建议你切勿追求完美 Mozilla发布可视化在线跟踪工具Lightbeam 望向海外:十大移动应用开发外包公司 Facebook支撑万亿Post搜索背后的技术窥探 云OS:共创智能化生态圈 云计算,让游戏世界更加精彩 360推儿童卫士手环,你怎么看? 量产谈判正在进行时:谷歌手表或比Google Glass先上市 Mozilla发布新版Firefox 25 提供支持Web Audio API UC产品总裁何小鹏:轻应用,做什么?怎么做? 高德携手阿里云发布“LBS云”,账户打通只是第一步 最后2天!2013移动开发者大会5折抢票倒计时 大数据如何改变在线广告业? 摩托罗拉推开源硬件平台计划Project Ara 七个垂手可得的敏捷开发工具 微信新版公众平台调整细节381处 300/次认证费引争议 libgit2:纯C语言实现的Git开发包 MongoDB的得与失 开箱即用!Android四款系统架构工具 谁说Kinect只是玩物?微软研究院使用它实现口语手语实时翻译 新浪微博推出粉丝服务平台 引发两微PK大战 MDCC2013移动开发者大会最新日程发布 门票优惠最后1天 为什么我的ServletContext会出错呢? 上传看不到主页啊???web.config vb+asp.net 很急,在线等待 網頁url傳遞參數變量及Form表單提交問題? 50分! 又是字符串,怎么总与我过不去 怎样把文件写入服务器端中映射的驱动器中,急 在线等。。。 [我贴我灌]世锦赛罗雪娟夺第三金 关于用户离职和升级后的处理? 代码问题,高手进 急,在线等待 DNS服务器的问题,高手救命!!!问题解决不了,老板要我走人了!!!!!(痛哭中 &&&&&&&&&) 鼠标当前位置的值与窗体位置如me.left 的值是怎么样换算的? 英文OS,我加一个中文字库,我要在我的程序中显示中文,该做些什么? 一个硬件问题,来看看吧!问了好多人多不明白 bcb6自带的install??? 简单要求 CSDN出的《JBuilder实用技术手册》到底怎么样呀?我看目录怎么像垃圾? 在jsp怎么取得用javabean连接得数据库中得记录总数 请教各位大师,如何用VB做一个象ComboBox一样的控件 web Service里的Application的问题 有没有能够打印固定行数的报表? 对XML不太熟悉,麻烦大家再看看! 关于bho及控制ie行为的问题, 如何动态的设置datawindow的计算域的表达式,及从程序中如何得到该计算域的值 [我贴我灌]巴塞罗那凯旋归来 “花样姑娘”泪洒观澜湖 一个到现在还没有解决的问题!我着急用啊!请哪位高手帮忙解决了,有高分相送! WIN32 CONSOLE APPLICATION 中怎么调用DLL (动态连接库) 怎么增加不了行,插入不了了?请大虾给个提示 50美元求作业! 如果没有学过C语言,能不能学J2SE啊? 100分请教:一个串行接口通信的问题————在线等待?!!!! 急,给个jb8中解决编辑jsp问题的补丁。谢谢 关于sendmail的设置以及PostNuke的安装 关于XML,XSL的兼容性问题 在SQL SERVER的视图不支持CASE语句吗?若要实现该如何写呢? 现在最标准的软件开发预算,各阶段的百分比是多少? ==========天哪!怎么会这样呢?我在全屏窗口中打开的任何窗口都是全屏显示的,可我不希望在全屏幕窗口中打开的窗口也是全屏怎么办啊?== 如何在远程服务器上安装web服务程序? 考虑到类的属性(表的字段)以后会增加,应该用怎样的设计模式或设计方法。 如何在子目录下获得根目录的网络路径? 急,IE每次打开都是最小化状态,怎样实现每次打开时将其最大化! 希望和大家讨论一下关于WebService的事务继承性的问题 请教一个关于日期使用的问题 急!!一个建表问题 WSAD怎么显示代码行号?? 50美元求作业!access 有没有能够打印固定行数的报表? 请教接收视频信号的问题 VBscript转换为JScript? treeview的初级问题(解决立刻给分),关于节点的OnSelectedIndexChanged事件? 如果,我不用水,不用风,不阳光,不用油,不用电,就能发电 给人们使用,我会得到,人们什么样的回如果,我不用水,不用风,不阳光,不用油,不用电,就能发电 给人们使用,我会得到,人们什么样的回报? 家兔消化管 ,特别发达,适于消化 . 如果,我用水,不用风,不阳光,不用油,不用电,就能发电 给人们使用,我会得到,人们什么样的回报如果,我用水,不用风,不阳光,不用油,不用电,就能发电 给人们使用,我会得到,人们什么样的回报? 春节中一定发生了许多有趣的事情,请你选择一两件写下来.注意一定要将事情的“趣”写出来,让大家和你一起乐一乐.80字左右 作文:穷快活是高中作文,还有校长办公室 把父亲叫成老爸好不好 富裕不一定幸福,贫穷不一定(什么)?用一个恰当的词语填写括号里面! 我常常忘了把烧好的水从电热水壶倒出来 水就直接呆在电热水壶里晾凉了 请问这样对健康有害吗?推荐答案推荐的都是什么东西,是选字数最多的吗?人家答的跟我的问题一点关系都没有,并且 1×2+2×3+3×4=?规律:1×2=1/3(1×2×3-0×1×2) 2×3=1/3(2×3×4-1×2×3) 3×4=1/3(3×4×5-2×3×4) 1×2+2×3+3×4=1/3×3×4×5=20 根据以上材料 推算出:①1×2+2×3+3×4+.+100×101=?②1×2+2×3+3×4+...n(n+1)=?③1×2×3+2× 追求高尚的人生目的 用英语怎么说同上再加二句人生目的的含义人生目的的作用 无穷快乐的穷的意思 穷开心啥意思啊?和开心有区别吗? 冯小刚好莱坞星光大道留手印(图)南京市江堤坍塌 水利局被质疑是工作疏埃及摧毁\"进口通道\"致燃料缺乏 史冬鹏结束9年恋爱家乡完婚 称比参加西班牙经济走出衰退 经济持续复苏仍需杨洁篪在21世纪理事会北京会议上的演伦敦前市长:伦敦有必要成为一个独立国德议员访俄邀斯诺登赴德参与司法听证 伊拉克总理与美总统会晤 请求美国提供日俄举行外长防长磋商 就反海盗合作等河北女婴被抱走18年续:家人称遭监视香港与泰国就加强人民币业务合作举行会李克强将在莫斯科“开放式创新”国际论苹果欲提升手机保密性 FBI局长指责乌总统设立新“祖国保卫者日” 不和俄新疆伊宁市女特警炼成记:谁说女子不如德国一男子谎报埃博拉疫情 将被追究刑外媒:解放军反思自身弊端 克服“和平小贩身披枷锁门前“喊冤” 办事处:她日本花滑名将高桥大辅正式宣布退役新疆伊犁州直电信网络诈骗花样翻新洞庭湖迎来观鸟季首批越冬候鸟抵达东洞
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘