功能说明:如何使用 TCPClient 生成 DateTime 客户端------------------------------------------------------------此应用程序作为标准日期和时间协议的客户端。此协议在端口 13 上工作,并用当前日期和时间响应任何到该端口的 TCP 连接。该应用程序首先使用默认构造函数创建 TCPClient 对象。然后使用静态类 DNS 将在命令行中指定的主机名解析为 IP 地址。接着,调用 Connect 方法,TCPClient 通过端口 13 连接到服务器上。随后调用 GetStream 方法,并返回表示服务器所返回的数据的 Stream 对象。此数据是用 Read 方法从 Stream 对象读取的。Read 方法所返回的字节数组转换为字符串然后显示。-----------------------------------------------------------------------------------
代码如下:static void Main() 
{
//Application.Run(new Form1());
string server = "www.microsoft.com";
TcpClient tcpc = new TcpClient();
Byte[] read = new byte[32]; if(Dns.GetHostByName(server) == null)
{
Console.WriteLine("无法找到服务器:{0}",server);
return;
}
//尝试连接到服务器
tcpc.Connect(server,13);
//获取流
Stream s;
try
{
s = tcpc.GetStream();//系统提示:不能做任何连接,因为目标机器积极地拒绝它。
}
catch(InvalidOperationException)
{
Console.WriteLine("无法连接到服务器{0}",server);
return;
}
//读取流并将其转换为ASCII
int bytes = s.Read(read,0,read.Length);
string Time = Encoding.ASCII.GetString(read);
//显示数据
Console.WriteLine("已接收到{0}个字节",bytes);
Console.WriteLine("当前的日期和时间为:{0}",Time);
tcpc.Close();
Console.WriteLine("按任意键退出.");
Console.Read();
}
当调试运行到s = tcpc.GetStream();提示:不能做任何连接,因为目标机器积极地拒绝它。

解决方案 »

  1.   

    你可以不要string server = "www.microsoft.com";
    这样就不知道是怎么调了
    ^_^
    可以自己做服务器,不知道这样行不?
      

  2.   

    你用dos命令telnet 访问服务器的13端口看看
    如果不能访问的话那就是网络的问题了
      

  3.   

    不好意思,说错了一个地方,
    string server = "www.microsoft.com";
    改为:
    string server = "localhost";
    系统提示:不能做任何连接,因为目标机器积极地拒绝它。使用string server = "www.microsoft.com";是提示: 由于连接方在一段时间后没有正确的答复或连接的主机没有反应,连接尝试失败。
      

  4.   

    我使用
    ---------------------------telnet localhost 13---------------------------
    提示:.Could not open a connection to host on port 13 : Connect failed请问怎样打开13端口?