1. 网络编程三要素
IP地址
使用"点分十进制"的形式。
组成:网络号码+主机地址
查看ip和MAC地址命令:
ipconfig -all
查看网络连接:
ping IP地址
127.0.0.1 -- 回环地址
比如访问本地应用tomcat:
http://127.0.0.1:8080
http://localhost:8080
每个网段的最后一位 :255 -- 广播地址
补充几个命令:
win+r -- regedit 打开注册表
win+r -- mstsc 连接远程电脑
端口
查看端口是否被占用: netstat -an
360的网络防火墙也可查看。
范围:0 - 65535
0-1024之间被系统占用或保留。
协议:
UDP
1.将数据源和目的封装成数据包中;
2.不需要建立连接;
3.每个数据包的大小在限制在64k;
4.因无连接,是不可靠协议;
5.不需要建立连接,速度快。
TCP
1.建立连接,形成传输数据的通道;
2.在连接中进行大数据量传输(数据无限制);
3.通过三次握手完成连接;
4.是可靠协议;
5.必须建立连接,效率会稍低。
2. Socket编程(套接字编程、网络编程)
为网络编程提供的一种机制。包装了端口号和IP地址。
InetAddress -- 表示IP地址
static InetAddress getByName(String hostname)
-- 通过ip地址的文本表示形式或者主机名返回对象
注意:如果传入的IP地址没有,那么主机名和IP地址都将返回传入的。
InetAddress.getLocalHost();
-- 获取本机地址对象
String getHostName()
-- 获取主机名
String getHostAddress()
-- 获取ip地址
3. UDP协议发送数据
1) 创建发送端Socket对象
DatagramSocket ds = new DatagramSocket();
2) 创建数据并打包
DatagramPacket dp = new DatagramPacket(byte[] bys, int length, InetAddress ia, int port)
-- 发送数据的字节数组,数组长度,接收端的InetAddress对象,端口号
3) 发送
send(DatagramPacket dp)
4) 释放资源
UDP协议接收数据
1) 创建接收端Socket
DatagramSocket ds = new DatagramSocket(int port)
2) 创建接收包(接收容器)
DatagramPacket dp = new DatagramPacket(byte[] bys, int len)
3) 接收
ds.receive(dp)
-- 把数据接收到DatagramPacket包中
4) 解析
DatagramPacket的功能:
InetAddress getAddress()
-- 获取ip地址对象
byte[] getData()
-- 获取接收的数据
int getLength()
-- 获取接收的数据的实际长度
5) 释放资源
4. TCP协议
客户端发送数据:
1) 创建客户端Socket对象, 建立连接
Socket(InetAddress ip, int port)
Socket s = new Socket(String ip, int port)
2) 获取输出流对象
OutputStream getOutputStream()
3) 写数据
write(byte[] bys)
4) 释放资源
close()
服务器端接收数据:
1) 创建服务器端Socket对象
ServerSocket ss = new ServerSocket(int port);
2) 监听连接
Socket socket = ss.accept();
3) 获取输入流
socket.getInputStream();
int read(byte[] bys)
4) 释放资源
掌握UDP TCP协议的特点
掌握UDP TCP协议的发送和接收数据
|
|