Java Socket 编程

简介:

端口:1

   1.用于区别不同的应用程序。

  2. 端口号范围0~65535 ,0~1023为系统所保留。

  3.IP 地址和 端口号组成了Socket .Socket 是网络运行的程序之间双向通信链路的终点,是TCP 和UDP的基础。

  4.常见的端口号 http 80 ftp:21  telnet 23

Java 中的网络支持:

针对网络通信的不同层次,分为四类

1.InetAddress ,用于表示网络上的硬件类(标识IP地址相关信息)

2.URL:网络资源定位

3.Sockets :用于TCP

4.Datagram :用于UDP

package com.InetAddress;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Arrays;

public class Test1 {

public static void main(String[] args) throws UnknownHostException{
InetAddress address = InetAddress.getLocalHost();
System.out.println("计算机名字: " + address.getHostName());
System.out.println("计算机的地址:" + address.getHostAddress());
byte[] bytes = address.getAddress();//获取字节数组形式的IP
System.out.println(Arrays.toString(bytes));
System.out.println(address);
//InetAddress address2 = InetAddress.getByAddress(bytes);
//InetAddress address2 = InetAddress.getByName("");
//System.out.println(address2.getHostAddress());

InetAddress bdaddress = InetAddress.getByName("www.163.com");
System.out.println(bdaddress);
System.out.println("本机是否可达?"+ address.isReachable(5000));


}
}

URL 类:统一资源定位符

创建URL实例:

 1 package com.InetAddress;
 2 
 3 /*import java.io.IOException;*/
 4 import java.io.IOException;
 5 import java.net.InetAddress;
 6 import java.net.URL;
 7 import java.net.UnknownHostException;
 8 import java.util.Arrays;
 9 
10 public class Test1 {
11 
12     public static void main(String[] args) throws IOException{
13         //创建一个URL实例
14         URL imooc = new URL("http://www.imooc.com");
15         //根据已有实例,创建一个新的实例
16         // ?后面跟的是参数,# 后面跟的是锚点  
17         URL url = new URL(imooc,"/index.html?username=tom#test");
18         System.out.println("协议:"+ url.getProtocol());
19         System.out.println("主机:"+ url.getHost());
20         //如果没有指定端口号,则返回默认端口号,此时getPort()返回值为-1
21         System.out.println("端口号:" +url.getPort());
22         System.out.println("文件路径:"+ url.getPath());
23         System.out.println("文件名:"+ url.getFile());
24         System.out.println("相对路径:"+ url.getRef());
25         System.out.println("查询字符串:"+ url.getQuery());
26         
27     }
28 }


使用URL读取页面内容


1
package com.InetAddress; 2 3 /*import java.io.IOException;*/ 4 import java.io.BufferedReader; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.io.InputStreamReader; 8 import java.net.InetAddress; 9 import java.net.URL; 10 import java.net.UnknownHostException; 11 import java.util.Arrays; 12 /* 13 * 使用URL读取页面内容 14 */ 15 public class Test1 { 16 17 public static void main(String[] args) throws IOException{ 18 //创建一个URL实例 19 URL url = new URL("http://www.baidu.com"); 20 //通过URL的openStream()方法,获取URL的对象表示的字节输入流 21 InputStream is = url.openStream(); 22 //将字节输入流转化为字符输入流,同时指定字符集,以防乱码 23 InputStreamReader isr = new InputStreamReader(is,"utf-8"); 24 // 为字符输入流添加缓冲 25 BufferedReader br= new BufferedReader(isr); 26 String data = br.readLine();//一次读取一行 27 while(data!= null){ 28 System.out.println(data); 29 data = br.readLine(); 30 } 31 32 } 33 }
原文地址:https://www.cnblogs.com/vector11248/p/6224410.html