Java网络编程
基本的通信架构
基本的通信架构:
- CS架构(Client/Server)
- BS架构(Browser/Server)
IP地址
InetAddress
InetAddress 类的常用方法 |
说明 |
---|---|
public static InetAddress getLocalHost() throws UnknownHostException |
获取本机IP,返回一个InetAddress 对象 |
public String getHostName() |
获取该IP地址对象对应的主机名 |
public String getHostAddress() |
获取该IP地址对象中的IP地址信息 |
public static InetAddress getByName(String host) throws UnknownHostException |
根据IP地址或者域名,返回一个InetAddress 对象 |
public boolean isReachable(int timeout) throws IOException |
判断主机在指定毫秒内与该IP对应的主机是否能连通 |
端口
- 周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用80,FTP占用21)
- 注册端口:1024~49151,分配给用户进程或者某些应用程序
- 动态端口:49152~65535,不固定分配某种进程而是动态分配
传输层通信协议
UDP:用户数据报协议
无连接、不可靠,通信效率高,适合直播、视频通话
TCP:传输控制协议
面向连接、可靠通信,三次握手建立连接,传输数据进行确认,四次挥手断开连接,适合文件下载、支付、网页
UDP通信
java.net.DatagramSocket
类实现UDP通信。
TCP通信
客户端使用java.net.Socket
类实现,服务端使用java.net.ServerSocket
类实现。
引入多线程实现TCP多客户端通信
服务端:主线程负责接收客户端连接,接收到客户端创建子线程负责socket
B/S架构的原理
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Eternity's Blog!