------- android培训、java培训、期待与您交流! ---------------
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:释放资源
代码体现:(自己体现)
<span style="font-size:18px;">/*
* 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();
}
} </span>
接收数据A:创建UDP协议接收数据的Socket对象。
B:创建数据包用于接收数据。
C:接收数据,并解析数据。
D:释放资源。
代码体现:
<span style="font-size:18px;">/*
* 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();
}
} </span>
(6)TCP协议(理解 参照TCP发送接收数据图)客户端
A:创建客户端Socket对象。
B:获取输出流对象
C:使用输出流对象输出数据。
D:释放资源
代码体现:
<span style="font-size:18px;">Socket s = new Socket("192.168.1.100",10000);
OutputStream os = s.getOutputStream();
os.write("hello,tcp".getBytes());
s.close(); </span>
服务器端A:创建服务器Socket对象。
B:监听并获取客户端对象。
C:获取输入流。
D:根据输入流读取数据。
E:释放资源
<span style="font-size:18px;">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(); </span>
----------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 详细请查看:www.itheima.com