网络编程
网络模型
网络通信步骤:
-
找到对方IP
-
数据发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应该程序用数字标识,这些标识称为端口。
-
定义通信规则。这个规则称为协议。国际组织定义了通用协议TCP/IP协议
常用的传输协议:TCP和UDP
OSI模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP模型:应用层、传输层、网络层、数据链路层、物理层
网络通信要素
IP地址(InetAddress)
网络中设备的标识
本地回环地址:127.0.0.1主机:localhost
端口号
有效端口:0~65535
UDP(面向无连接):
1、将数据及源和目的封装成数据包中,不需要建立连接
2、数据包最大只能64K
3、不可靠协议
4、速度快
TCP(必须建立连接)
-
建立连接形成数据通道
-
在连接中进行大数据传输
-
三次握手完成连接,是可靠连接
-
必须建立连接,效率稍低
Socket是网络服务提供的一种机制
通信两端必须现有socket
UDP传输
DatagramSocket类
发送数据步骤:
-
建立UdpSocket服务,通过DatagramSocket建立
-
提供数据,并将数据封装在数据包中,用DatagramPacket;
-
通过socket服务,将已有的数据包发送出去,通过send方法
-
关闭资源
接收数据步骤:
-
定义udpsocket服务,使用DatagramSocket要指定端口
-
定义数据包,存储数据,使用DatagramPacket
-
通过服务的receive方法将收到的数据存入数据包,阻塞式方法
-
通过数据包的方法获取其中的数据调用getData()方法
-
关闭资源 close()方法
聊天软件用多线程技术
TCP传输
-
TCP分客户端和服务端
-
客服端对应的对象是soket服务端对应的对象是ServerSocket
客户端步骤:
-
创建Socket服务,并指定要连接的主机和端口 Socket类
-
发送数据,应该获取socket流中的输出流OutputStream
服务端思路:
-
建立服务端的socket服务,SeverSocket(),并监听一个端口
-
获取连接过来的客户端对象,通过ServerSocket的accept方法,没有连接就会等,所以这个方法是阻塞式的。
-
客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取到该客服端对象的读取流来读取数据打印到控制台上
-
关闭服务端(可选)
服务端步骤:
-
建立服务端socket服务,并监听一个端口ServerSocket类 accept()方法
-
通过accept()方法获取连接过来的客户端对象;
-
获取客户端发过来的数据,那么要使用客户端对象的读取流来读取数据
在客户端和服务端实例中要注意,判断字符的结束标记