java实训0310

网络编程

*网络通信:将数据通过网络从一台设备传送到另一台设备

*ip地址:主机的唯一标识,类似于人的身份证(用ipconfig查看ip)

               ip地址的表示方式:xx.xx.xx.xx(没一个十进制数范围:0-255)

*域名:通过域名的访问,解决ip的困难

*端口:用来标识计算机上某个特定的网络程序(范围:0-65535,0-124已被占用)

InetAddress类

InetAddress 类没有提供公共的构造器,提供了几个静态方法来获取InetAddress 实例:
1、public static InetAddress getLocalHost()
2、public static InetAddress getByName(String host)
3、public static lnetAddress getByAddress(byte[] addr)

Socket

*实质:提供了进程通信的端点。进程通信之前,双方先各自建立一个端点,否则无法通信。Socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是 Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

*包含五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

*套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
1、服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
2、客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
3、连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。


*Socket网络编程实现
Server端Listen监听某个端口是否有连接请求,Client端向Server端发出连接请求,Server端向Client端发回 Accept接受消息。这样一个连接就建立起来了。Server端和Client端都可以通过Send,Write等方法与对方通信。
对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:
1、创建Socket对象;
2、打开连接到Socket的输入/出流;
3、按照一定的协议对Socket进行读/写操作;
4、关闭Socket。

TCP与UDP

*TCP
TCP协议:传输控制协议
1、使用TCP协议前,须先建立TCP连接,形成传输数据通道
2、传输前,采用"三次握手"方式,是可靠的
3、TCP协议进行通信的两个应用进程:客户端、服务端
4、在连接中可进行大数据量的传输
5、传输完毕,需释放已建立的连接,效率低

 TCP网络编程客户端开发步骤
---客户端程序包含以下四个基本的步骤:
1、创建Socket :根据指定服务端的IP地址或端口号构造Socket类对象。若服务器端响应,则建立客户端到服务器的通信线路。若连接失败,会出现异常。
2、打开连接到 Socket 的输入/出流:使用getlnputStream()方法获得输入流,使用getOutputStream()方法获得输出流,进行数据传输
3、照一定的协议对Socket进行读/写操作:通过输入流读取服务器放入线路的信息(但不能读取自己放入线路的信息),通过输出流将信息写入线路。
4、关闭 Socket :断开客户端到服务器的连接,释放线路
---服务端开发步骤
1、调用ServerSocket(int port):创建一个服务器端套接字,并绑定到指定端口上。用于监听客户端的请求。
2、调用 该Socket类对象的getOutputStream()和getlnputStream():获取输出流和输入流,开始网络数据的发送和接收。
3、关闭Socket 对象:客户端访问结束,关闭通信套接字。

###tcp1

###tcp2

*UDP
UDP:用户数据包协议
1、将数据、源、目的封装成数据包,不需要建立连接
2、每个数据报的大小限制在64K
3、内因无需连接,故是不可靠
4、发送数据结束时无需释放资源(因为不是面向连接的),速度快

类DatagramSocket和DatagramPacket实现了基于UDP 协议网络程序。
UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。
DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号。
UDP协议中每个数据报都给出了完整的地址信息,因此无须建立发送方和接收方的连接。如同发快递包裹一样。

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值