首页 > 代码库 > Java--Socket通信

Java--Socket通信

下面内容是Java开发内容的高级知识点,需要对Java中的面向对象、IO、多线程、以及网络相关知识有一定的基础。(知识永远都有深度,本章节长期更新内容)

 

1、网络基础知识

 

网络通信的条件:1、两个通信的端都要有各自的IP地址作为唯一标识,简单的来说IP地址用来区分不同机器(计算机)。2、语言要相通。3、如何辨别不同程序的通信需要端口号来区别,简单的来说端口号就是用来标识不同的应用程序。

TCP/IP是目前世界上使用最广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也称TCP/IP协议族 或 TCP/IP 协议栈。

TCP:Transmission Control Protocol 传输控制协议
IP:Internet Protocol 互联网协议

TCP/IP模型

技术分享

 

>>IP和端口<<
1、用于区分不同应用程序。
2、端口号范围为0~65535,其中0~1023为系统所保留。如果自定义端口号,所以建议用1024之后的端口号。
3、IP地址和端口号组成了所谓的Socket,Socket是网络上运行程序之间双向通信链路的终结点,是TCP和UDP的基础。


常用的端口号需要记一下:http:80    ftp:21    telnet:23

 

——————————Java中的网络支持—————————
针对网络通信的不同层次,Java提供的网络功能有四大类:
>>1、InetAddress:用于标识网络上的硬件资源
>>2、URL:统一资源定位符 通过URL可以直接读取或写入网络上的数据
>>3、Socket:使用TCP协议实现网络通信的Socket相关的类。
>>4、Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信。

 


2、InetAddress类

查看I-net-Address的API文档,发现没有构造方法,也就是不能通过new来创建。所以肯定有静态的方法来创建。

 1 import java.net.InetAddress;
 2 import java.net.UnknownHostException;
 3 import java.util.Arrays;
 4 
 5 public class Test1{
 6     public static void main(String[] args) throws UnknownHostException{
 7         // 获取本机的InetAdresss实例
 8         InetAddress address = InetAddress.getLocalHost();
 9         System.out.println("计算机名:"+address.getHostName()+"\nIP地址:"+address.getHostAddress());
10 
11         // 获取字节数组形式的IP地址
12         byte[] bytes = address.getAddress();
13         System.out.println("字节数组形式的IP:"+Arrays.toString(bytes));
14         System.out.println(address);
15 
16         // 也可以通过机器名来获取InewAdress
17         InetAddress address2 = InetAddress.getByName("MacBook-Air-2.local");
18         System.out.println("通过计算机名字创建的InetAddress对象:"+address2);
19         System.out.println("计算机名:"+address2.getHostName());
20         System.out.println("IP地址:"+address2.getHostAddress());
21 
22         // 也可以通过IP地址来获取InewAdress
23         InetAddress address3 = InetAddress.getByName("192.168.1.102");
24         System.out.println("通过计算机IP地址创建的InetAddress对象:"+address3);
25         System.out.println("计算机名:"+address3.getHostName());
26         System.out.println("IP地址:"+address3.getHostAddress());
27 
28 
29     }
30 }

输出结果:

技术分享

 

 
3、URL

 URL(Uniform Resource Locator)统一资源定位符,表示Internet上某一资源的地址。 俗称就是网址。

 URL由两部分组成:协议名称+资源名称。

 在Java.net包中,提供了URL类来表示URL。

 

 

 


4、TCP编程
5、UDP编程

 

Java--Socket通信