InetAddress获取网络上的硬件对象(IP地址代表的对象和主机名)
InetAddress address=getAllByName(String host)//根据主机名返回系统配置上的ip地址所组成的数组
InetAddress address=getByAddress( byte[ ] addr)//通过原始IP地址(以字节形式的ip byte[ ]数组)返回对象
InetAddress address=getAddress(String host, byte[] addr)//根据主机名和IP地址获取Inet对象
InetAddress address=getByName( String host)//通过主机名字获取对象
ULR统一资源定位符 获取一个URL 对象
URL url =new URL(String spac)//通过一个URL路径获取一个对象
URL url = new URL(URL context, String spac)//通过一个根url(首页)对象获取一个子url(首页下的分支)
通过URl 对象获取网络资源
try {
URL url=new URL("http://www.baidu.com");
InputStream openStream = url.openStream();//获取一个输入流对象
//将字节流装换成字符流
InputStreamReader isr=new InputStreamReader(openStream,"utf-8");
//将字符流转换成字符缓冲流
BufferedReader br=new BufferedReader(isr);
String data = br.readLine();
while(data!=null){
System.out.println(data);
data=br.readLine();
}
} catch (MalformedURLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
ServerSocket (服务器)与 Socket(客户端)实现通信
ServerSocket JAVA 代码
try {
//声明一个绑定到特定端口的ServerSocket对象
ServerSocket servSocket=new ServerSocket(8088);
//等待客户端连接,及获取一个客户端Socket对象
Socket socket = servSocket.accept();
InputStream is = socket.getInputStream();//获取字节输入流
InputStreamReader isr=new InputStreamReader(is);//将字节流转换成字符流
BufferedReader br=new BufferedReader(isr);//为字节流添加缓冲
String message=null;//存储获取客户端信息
while((message=br.readLine())!=null){
System.out.println("客户端:"+message);
}
} catch (IOException e) {
e.printStackTrace();
}
Socket (Client ) JAVA 代码
try {
//创建绑定了端口的socket对象(指定服务器)
Socket socket=new Socket("localhost", 8088);
//获取输出流对象向服务器发送数据
OutputStream os = socket.getOutputStream();
//将输出流转换成打印流
PrintWriter pw=new PrintWriter(os);
pw.write("Hello Server!");
pw.flush();//刷新缓存区
//关闭资源
socket.shutdownOutput();
os.close();
pw.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
TIPS:ServerSocket必须先运行于Socket(Client)。