1:网络编程(理解)
(1)网络编程:用java代码实现多台计算机的通信。
Socket编程,套接字编程。
(2)网络模型(了解,计算机网络)
(3)网络通信的三要素(掌握)
A:IP地址
唯一标识一台计算机
IP地址的概述
InetAddress类的使用。
static InetAddress getByName(String host)
B:端口
应用程序的逻辑标识。
范围:0-65535之间。0-1024被系统占用或者保留。
C:协议
通信的规则。
UDP:
面向无连接。
数据不可靠。
数据速度快。
大小有限制。
举例:
凌波发数据,群发短信
TCP:
面向连接。
数据可靠。
数据速度慢。
大小无限制。
举例:
打电话
(4)Socket对象:(理解)
应用程序的通信,其实就是在Socket对象间通过IO进行数据的交互。
(5)UDP协议(理解 参照UDP发送接收数据图)
发送数据
A:创建UDP协议发送数据的Socket对象。
B:创建数据并打包。
C:发送数据。
D:释放资源
代码体现:(自己体现)
(1)网络编程:用java代码实现多台计算机的通信。
Socket编程,套接字编程。
(2)网络模型(了解,计算机网络)
(3)网络通信的三要素(掌握)
A:IP地址
唯一标识一台计算机
IP地址的概述
InetAddress类的使用。
static InetAddress getByName(String host)
B:端口
应用程序的逻辑标识。
范围:0-65535之间。0-1024被系统占用或者保留。
C:协议
通信的规则。
UDP:
面向无连接。
数据不可靠。
数据速度快。
大小有限制。
举例:
凌波发数据,群发短信
TCP:
面向连接。
数据可靠。
数据速度慢。
大小无限制。
举例:
打电话
(4)Socket对象:(理解)
应用程序的通信,其实就是在Socket对象间通过IO进行数据的交互。
(5)UDP协议(理解 参照UDP发送接收数据图)
发送数据
A:创建UDP协议发送数据的Socket对象。
B:创建数据并打包。
C:发送数据。
D:释放资源
代码体现:(自己体现)
- /*
- * UDP协议的发送数据:
- * A:创建Socket对象
- * B:创建一些数据,然后把数据打包
- * C:发送数据
- * D:释放资源
- */
- public class SendDemo {
- public static void main(String[] args) throws IOException {
- // 创建Socket对象
- DatagramSocket ds = new DatagramSocket();
- // 创建一些数据,然后把数据打包
- // public DatagramPacket(byte[] buf,int length,InetAddress address,int
- // port)
- byte[] bys = "hello,udp,我来了".getBytes();
- InetAddress address = InetAddress.getByName("192.168.1.100");
- DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 10000);
- // 发送数据
- // public void send(DatagramPacket p)
- ds.send(dp);
- // 释放资源
- ds.close();
- }
- }
接收数据
A:创建UDP协议接收数据的Socket对象。
B:创建数据包用于接收数据。
C:接收数据,并解析数据。
D:释放资源。
代码体现:(自己体现)
- /*
- * UDP协议的接收数据:
- * A:创建Socket对象,并指定端口号
- * B:接收数据 - 数据包
- * C:解析数据,并把数据显示出来
- * D:释放资源
- */
- public class ReceiveDemo {
- public static void main(String[] args) throws IOException {
- // 创建Socket对象
- DatagramSocket ds = new DatagramSocket(10000);
- // 创建数据包对象
- // public DatagramPacket(byte[] buf,int length)
- byte[] bys = new byte[1024];
- DatagramPacket dp = new DatagramPacket(bys, bys.length);
- // 接收数据 - 数据包
- ds.receive(dp);
- // 解析数据,并把数据显示出来
- // public byte[] getData():返回的数据缓冲区
- byte[] data = dp.getData();
- //如何获取到实际读取长度
- //public int getLength()
- int len = dp.getLength();
- String str = new String(data,0,len);
- System.out.println("数据是:" + str);
- // 释放资源
- ds.close();
- }
- }
(6)TCP协议(理解 参照TCP发送接收数据图)
客户端
A:创建客户端Socket对象。
B:获取输出流对象
C:使用输出流对象输出数据。
D:释放资源
代码体现:
- Socket s = new Socket("192.168.1.100",10000);
- OutputStream os = s.getOutputStream();
- os.write("hello,tcp".getBytes());
- s.close();
服务器端
A:创建服务器Socket对象。
B:监听并获取客户端对象。
C:获取输入流。
D:根据输入流读取数据。
E:释放资源
- ServerSocket ss = new ServerSocket(10000);
- Socket s = ss.accept();
- InputStream is = s.getInputStream();
- byte[] bys = new byte[1024];
- int len = is.read(bys);
- String client = new String(bys,0,len);
- System.out.println("client:"+client);
- s.close();
- ss.close();