编写代码实现跨主机之间的通信。
1.套接字
应用层(程序)调用传输层(操作系统)的一组函数,这组函数统称为网络编程套接字(socket)。
传输层主要涉及两种协议,TCP/UDP,所以根据两种不同的协议提供了两组socket函数。
2.TCP/UDP
TCP特性:有连接,可靠传输,面向字节流,全双工
TCP(Transmission Control Protocol)传输控制协议
有连接:
TCP正式通信之前,就需要让通信双方保存对方的关键信息,通信结束后再删除对方的关键信息。
丢包:
网络传输过程中是可能产生丢包的。每个路由器/交换机在单位时间内能够传输的数据量有限,如果传输超出上限,就会出现丢包。
可靠传输:
就是对抗丢包,尽可能把数据传输给对方。如果数据不能送达接收方,也能知道接收方是否收到了数据报。
面向字节流:
和读写文件类似,使用InputStream和OutputStream
全双工:
一个通信,可以进行双向传输。
半双工就是一个通信只能单向传输。
UDP特性:无连接,不可靠传输,面向数据报,全双工
无连接;
不考虑丢包;
面向数据报:每次读写以一个UDP数据报为单位进行。
3.socket
socket有多种含义:
1.网络编程套接字socket:网络编程中用到的传输层api的统称
2.socket对象:表示网卡硬件设备的抽象,socket对象相当于一种特殊的文件
4.使用UDP协议进行网络编程
1.server
1.DatagramSocket类
DatagramSocket类的方法·:

2.DatagramPacket(数据报包)
DatagramPacket是UDP Socket发送和接收的数据报,DatagramPacket是UDP数据传输中的基本单位。
3.SocketException异常

SocketException继承IOException:

4.客户端与服务器
5.端口号

指定port端口号,作为构造方法的参数。
端口号:区分主机上的不同的应用程序
6.启动服务器
7.读取请求并解析
异常
8.根据请求计算响应
9.将响应返回给客户端
udp无连接,socket对象不获取发送端的IP和端口号。
所以要手动设置服务器计算后的响应发给谁
2.client
1.传参,服务端IP、端口号
2.开启客户端
3.用户输入
4.构造UDP数据报,进行发送
5.从服务器读取相应
6.显示响应