摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!
当我们编写网络程序时,我们应该认识telnet的小工具(unix 和 win 自带)。Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。win自带的telnet要去开启,开启的步骤如下:
下面我们就用telnet访问服务器,校对下时间。打开cmd界面,请输入:
telnet time-A.timefreq.bldrdoc.gov 13应该有些延迟,你会看到黑幕中弹出 来自USA的X原子的计量时间:
56853 14-07-15 07:50:43 50 0 0 645.5 UTC(NIST) *
其实,time-A.13timefreq.bldrdoc.gov 是域名,13是端口(port)。返回过来当前日期时间的是端口(13)。远程服务器一直在等待与端口13的网络连接,当其接收到请求,就反馈给客户端。
以下,是我提供的telnet的工具常用命令。
在上面,我们用Socket来访问time-A.timefreq.bldrdoc.gov,获取时间。其中的关键代码:InputStream inStream = s.getInputStream();
Scanner scanner = new Scanner(inStream);
第一行代码用来打开套接字没用于是该程序和外部间的通信。一旦套接字打开,Socket类和getInputStream方法返回一个流对象。然后构造个扫描器进行标准输出。不要看Socket 简单易用,java封装了大量的代码,比如网络连接,数据发送直接的复杂过程…
相关资料:
Socket(InetAddress address, int port)
创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
getInputStream()
返回此套接字的输入流.
Scanner(InputStream source)
构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
从套接字读取信息,有可能读操作会被阻塞。良好的处理方式:确定合理的超时值。用setSoTimeout方法设置这个超时(单位:毫秒).
Socket s = new Socket(); s.connect(new InetSocketAddress("time-A.timefreq.bldrdoc.gov", 13), 5000);connect(SocketAddress endpoint, int timeout) 将此套接字连接到服务器,并指定一个超时值。
五.因特网地址
因特网地址通常是一串数字表示主机地址。由4个字节构成,IPv6规定16个字节,比如:132.163.1.127.如果主机系统支持IPv6格式,则java.net包也支持它。InetAddress对象的静态方法getByName可以返回其对象。
InetAddress address = InetAddress.getByName(www.baidu.com);下面演示一个demo,用来获取本机 或者 输入的主机名:
package sedion.jeffli.net; import java.net.InetAddress; import java.net.UnknownHostException; public class InetAddressTest { public static void main(String[] args) throws UnknownHostException { try { if (args.length > 0) { String host = args[0]; InetAddress[] address = InetAddress.getAllByName(host); for (InetAddress inetAddress : address) { System.out.println(inetAddress); } } else { InetAddress localHostAddress = InetAddress.getLocalHost(); System.out.println(localHostAddress); } } catch (Exception e) { e.printStackTrace(); } } }
static InetAddress getAllByName(String host) 在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。
static InetAddress getLocalHost() 返回本地主机。
String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。
String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。
一.服务器初试-telnet工具
二.telnet工具的使用
三.Socket实现访问服务器
四.套接字超时
五.因特网地址
来自:java基础书籍。
转载于:https://www.cnblogs.com/Alandre/p/3847828.html
相关资源:数据结构—成绩单生成器