JAVA知识点总结-18 网络编程

时间:2022-12-15 10:09:44

一.网络编程的三要素:

1.   ip:一个计算机标识,每个计算机只有一个,不可重复

2.   端口:每个程序会对应一个端口,用来通信,

  有效端口:0~65535,其中0~1024系统使用或保留端口


3. 协议:TCP,UDP


协议TCP和UDP的区别:

   UDP:

   把数据打成一个数据包,不需要建立链接

 数据包大小有限制,不能超过64K

 无连接,属于不可靠协议(数据可能丢失)

   无连接,效率高

  

   TCP:

   需要建立连接,形成通道

 数据可通过连接通道进行传输,无大小限制

 有链接,属于可靠协议

 有链接,效率低


1.InetAdress:IP地址描述类(对IP地址的获取和操作

 

public static InetAddress getByName(String host)( host: 可以是主机名,也可以是IP地址的字符串表现形式)

public String getHostAddress()返回 IP 地址字符串(以文本表现形式)。

public String getHostName()获取此 IP 地址的主机名。


2.Socket( 也叫 socket 编程,套接字编程,网络编程 )


socket通信机制:

通信两端都有Socket

网络通信其实就是Scoket通信

数据在两个Scoket间通过IO传输


3.UDP通信步骤:

         

发送端步骤:

/*

  * UDP发送数据的步骤:

  * A:创建UDP发送数据端Socket对象

  * B:创建数据包,并给出数据,把数据打包

  * C:通过Socket对象发送数据包

  * D:释放资源

  */

 


 接收端步骤:

/*

  * UDP协议接收数据步骤:

  * A:创建UDP接收数据端Socket对象

  * B:创建一个接收数据的数据包

  * C:接收数据,数据在数据包中

  * D:解析数据包,并把数据显示在控制台

  * E:释放资源

  */

  


 

4.TCP通讯步骤

/*

 * TCP协议发送数据步骤:

 * A:创建TCP协议发送端Socket对象

 * 指定服务器IP及端口

 Socket sk = new Socket("192.168.3.120" , 9527) ;

 * B:获取输出流,并写数据

 OutputStream outputStream = sk.getOutputStream() ;

 outputStream.write("hello,TCP我来了".getBytes()) ;

 * C:释放资源

 sk.close() ;

 *

 * java.net.ConnectException: Connection refused: connect

 * TCP协议是不能直接运行客户端的,必须先运行服务器。因为他是一种可靠的协议。

 */

 

 接收端:

 /*

 * TCP协议接收数据步骤:

 * A:创建TCP协议接收端Socket对象

   ServerSocket ss = new ServerSocket(9527) ;

 * B:监听客户端连接

   Socket sk = ss.accept() ;

 * C:获取输入流,并读取数据,显示在控制台

 // 读取数据

byte[] bytes = new byte[1024] ;

int len = inputStream.read(bytes) ;

// public InetAddress getInetAddress()获取IP地址

InetAddress inetAddress = sk.getInetAddress() ;

String ip = inetAddress.getHostAddress() ;

// 输出

System.out.println(ip + "发来数据是: " + new String(bytes , 0 , len));

 * D:释放资源

 sk.close() ;

 */