javaSE 笔记 网络编程

2021/9/4 14:07:02

本文主要是介绍javaSE 笔记 网络编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

网络编程概述

实现网络互连的不同计算机上运行的程序间可以进行数据交换

网络编程三要素

简单来说就是IP地址,用来识别设备的,端口,用来识别应用程序的,协议,用来遵守"交通规则"的

IP地址

IPv4:是给每个连接在网络上的主机分配一个32bit地址,要是用二进制表示,就是4个字节,不过一般用10进制来记,比如192.168.1.66
IPv6:采用128位地址长度,16个位一组,8组十六进制数
常用命令:
ipconfig:查看本机IP地址
ping IP地址:检查网络是否连通
特殊IP地址:127.0.0.1:回送地址,可以代表本机地址,一般用来测试使用

InetAddress类

为了方便我们对IP地址的获取和操作,JAVA提供了一个InetAddress类 供我们使用
这个类没有构造方法,同时他里面的各种方法也不全是静态方法,但是他提供一种静态方法来获取该类的对象
主要的方法有:1.staticInetAddress getByName(String host) 确定主机名称的IP地址,主机名称可以使机器名称,也可以是IP地址
2.String getHostName() 获取此IP地址的主机名
3.String getHostAdress() 返回文本显示中的IP地址字符串

端口

端口号:用两个字节表示的整数,它的取值是0-65535,其中,0-1023之间的端口号用于一些知名的网络服务和应用,普通的应用程序需要
使用1024以上的端口号。如果端口号被另外一个服务或应用所占用,会导致当前程序启动失败。

协议

UDP协议:无连接通信协议,即在数据传输时,数据发送端和接收端不建立链接。适合传输不重要的信息。

TCP协议:TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间
可靠无差错的数据传输。适合重要信息的传输

UDP发送数据

java提供了一个类 DatagramSocket 用于发送和接收数据报数据包的套接字,发送对象可以用DatagramPacket创建,构造方式如下
DatagramPacket​(byte[] buf, int offset, int length, InetAddress address, int port)
构造一个数据报包,用于将长度为 length且偏移量为 ioffset的数据包发送到指定主机上的指定端口号。

UDP接收数据

TCP发送数据

java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信,java为客户端提供了Socket类,为服务器端提供了ServerSocket类

因为TCP通讯是需要三次握手的,所以只有发送数据是不行的,还得创建接受数据

TCP接收数据

TCP例子


有个shutdown的方法可以替代自定义结束标记,没有结束标记的话,服务端会一直在等待客户端传数据。这么看起来不知道while((line=br.readLine())!=null)到底在限制什么。
另外TCP的服务端相比于客户端,多了一个监听的功能,用accept()方法获取,返回的也是一个Socket对象。



这篇关于javaSE 笔记 网络编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程