11.网络编程
网络编程
三要素
-
IP
- 127.0.0.1 (永远表示本机)
-
端口号
- 取值范围为0~65535, 其中0~1023之间的端口号已用于一些知名的网络服务或应用
-
协议
- UDP: 面向无连接, 速度快, 大小限制一次最多发送64K, 数据不安全, 易丢失
- TCP: 面向连接, 速度慢, 没有大小限制, 数据安全
InetAddress类
-
static InetAddress getByName(String host)
: 确定主机名称的IP地址. 主机名称可以是机器名称, 也可以是IP地址获取此IP地址的主机名 -
String getHostName()
: 获取此IP地址的主机名 -
String getHostAddress()
: 返回文本显示中的IP地址字符串
UDP通信
1 | /* 发送端 */ |
1 | /* 接收端 */ |
-
三种通信方式
-
单播: 上述代码为单播
-
组播: 224.0.0.0 ~ 239.255.255.255, 其中224.0.0.0 ~ 224.0.0.255为预留的组播地址
1
2
3
4
5
6
7
8
9
10
11
12/* 发送端 */
// 第一步为创建MulticastSocket对象
MulticastSocket ms = new MulticastSocket();
/* 接收端 */
// 第一步为创建MulticastSocket对象
MulticastSocket ms = new MulticastSocket();
// 在接收数据包前要将本机添加到发送端发送的组播地址中
InetAddress address = InetAddress.getByName("224.0.0.1");
ms.joinGroup(address); -
广播: 255.255.255.255
-
TCP通信
-
通信之前要保证连接已经建立
-
通过socket产生IO流来进行网络通信
1 | /* 客户端 */ |
1 | /* 服务端 */ |