获得链接的地址,可以是网址也可以是IP Console.WriteLine("Server Address:"); //解析输入,如果是一个网址,则解析成ip IPAddress import = GetIP(Console.ReadLine()); //获得端口号 Console.WriteLine("Server Port:"); int port = int.Parse(Console.ReadLine()); //建立一个socket对象,使用IPV4,使用流进行连接,使用tcp/ip 协议 s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //获得一个链接地址对象(由IP地址和端口号构成) IPEndPoint address = new IPEndPoint(import, port); /* * 说明此socket不是处于阻止模式 * * msdn 对阻止模式的解释: * ============================================================ * 如果当前处于阻止模式,并且进行了一个并不立即完成的方法调用, * 则应用程序将阻止执行,直到请求的操作完成后才解除阻止。 * 如果希望在请求的操作尚未完成的情况下也可以继续执行, * 请将 Blocking 属性更改为 false。Blocking 属性对异步方法无效。 * 如果当前正在异步发送和接收数据,并希望阻止执行, * 请使用 ManualResetEvent 类。 * ============================================================ */ s.Blocking = false; /* * 开始一个对远程主机连接的异步请求, * 因为Telnet 使用的是TCP 链接,是面向连接的, * 所以此处BeginConnect 会启动一个异步请求, * 请求获得与 给的address 的连接 * * 此方法的第二个函数是一个类型为AsyncCallback 的委托 * * 这个AsyncCallback msdn给出的定义如下 * ===============================