网络编程

网络编程
套接字 Socket 应用层通过Socket远程发送数据或者远程接收数据。
Socket是传输层供给应用层的编程接口,就是应用层与传输层直接的桥梁

TCP协议是传输层协议
1.传输前先建立连接,请求端(客户端)发送一个包含EYN即同步(Synchronize)标志的TCP报文,SYN同步报文会指名客户端使用的端口以及TCP连接的初始序号。
2.服务器接收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgament)。
3.客户端也返回一个确认报文ACK给服务器端,同时TCP序号被加一。
建立连接完成,开始通信第二步,数据处理

InetAddress类
是JAVA.net包里的类,用来提供网络功能,InetAddress中没有构造方法,包含域名或IP信息
getLocalHost()、getByName() 用来创建InetAddress对象
getLocalHost() 创建本机对象
getByName(IP或域名) 创建这个域名或IP的对象
getHostAddress() 获取当前计算机IP地址
getHostName() 获取当前对象IP的名字

InetSocketAddress类
是JAVA.net包里的类,用来提供网络功能,InetSocketAddress(包含域名或IP信息)和端口号,不依赖任何协议
URL类
URL是标识这些计算机上的资源
new URL() 参数为URL,将哪个URL包装成URL对象
请求-响应模式
Socket类 发送TCP消息(客户端)
ServerSocket类 创建服务器(服务端)
Socket是通讯对象
ServerSocket是连接对象
Socket类,创建客户端需要服务端的IP和服务端监听的端口号
ServerSocket类创建服务端需要一个端口号,用于监听
accept() 该方法用于开启服务器端的监听,监听到后解除阻塞状态
UDP协议
DategramSocket(int Port),创建客户端或服务端对象
接收端端口是指从哪个端口接收数据
发送端端口是指从哪个端口发送数据
send(DategramPacket p) 从此套接字发送数据报包
receive(DategramPacket p)从此套接字接受数据报包
close() 关闭此套接字数据报
DatagramPacket
DatagramPacket(Byte[] buf,int length) 构造数据报包,用来指定长度为length的数据包
(接收数据的数据报包)
DatagramPacket(Byte[] buf,int length,InetAddress address,int port) 构造数据报包,用来将长度为length的包发送到指定主机上的指定端口号(发送数据的数据报包)
new InetSocketAddress(ip,端口)