目录
一、C/S 与B/S软件架构
二、TCP与UDP协议
三、网络编程三要素
四、网络编程
TCP编程
UDP编程
一、C/S 与B/S软件架构
二、TCP与UDP协议
-
UDP协议(发短信)
-
TCP协议(打电话)
-
面向连接 -
数据可靠 -
理论发送的数据量无限制 -
效率相对低
三、网络编程三要素
-
协议 -
ip地址:用于唯一标识网络中的一台计算机,比如192.168.1.100 -
端口:0~65535范围的整数,用于标识计算机中运行的一个网络程序。 ip地址+端口用于唯一标识一个网络中的进程。
四、网络编程
-
TCP编程 ? 🚀客户端程序 //创建Socket对象
Socket socket = new Socket("192.168.42.34", 12345);
//通过Socket获取输出流
OutputStream os = socket.getOutputStream();
//写出数据
os.write("hello TCP123".getBytes());
//释放资源
os.close();
socket.close(); ?🚀服务端程序 //创建ServerSocket
ServerSocket ss = new ServerSocket(12345);
//接收一个Socket
Socket s = ss.accept();//阻塞方法
//获取输入流
InputStream is = s.getInputStream();
byte[] bys = new byte[1024];
int len = is.read(bys);//读取数据到数组
//输出数据到控制台
System.out.println("---" + new String(bys, 0, len));
//释放资源
is.close();
s.close();
ss.close(); -
UDP编程 ? 🚀发送端程序 //创建Socket
DatagramSocket ds = new DatagramSocket();
//创建数据包裹
byte[] bytes = "hello UDP".getBytes();
InetAddress ip = InetAddress.getByName("192.168.42.34");
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, ip, 12306);
//发生数据包
ds.send(dp);
//释放资源
ds.close(); 🚀接收端程序 //创建Socket
DatagramSocket ds = new DatagramSocket(12306);
//创建一个空数据包裹
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys,bys.length);
//接收数据到包裹中
ds.receive(dp);
//解析包裹中的数据
byte[] data = dp.getData();
InetAddress address = dp.getAddress();
String ip = address.getHostAddress();
int length = dp.getLength();
//输出数据到控制台
System.out.println(ip+"--"+new String(data,0,length));
//释放资源
ds.close();
|