【227天】黑马程序员27天视频学习笔记【Day26-下】
叨叨两句
被意外之事干扰了,累死了,但感觉挺好
这篇笔记还需要进一步优化。
26-07: 网络编程(UDP传输优化)
- 接收端Receive
package test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class Demo2_receive { public static void main(String[] args) throws IOException { DatagramSocket socket = new DatagramSocket(6666); //创建码头 DatagramPacket packet = new DatagramPacket(new byte[1024],1024); //创建集装箱rue while(true) { socket.receive(packet);//接货,接收数据 byte[] arr = packet.getData(); int len = packet.getLength(); String ip = packet.getAddress().getHostAddress(); int port = packet.getPort(); System.out.println(ip + ":" + port + ":" + new String(arr,0,len)); } } }
- 发送端Send
package test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; public class Demo1_send { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); DatagramSocket socket = new DatagramSocket();//创建码头 while(true) { String line = sc.nextLine(); if("quit".equals(line)) { break; } DatagramPacket packet = new DatagramPacket(line.getBytes(),line.getBytes().length,InetAddress.getByName("127.0.0.1"),6666);//创建集装箱,将数据装进去 socket.send(packet);//从码头中将集装箱发出去 } socket.close();//关闭码头(底层是IO流) } }
26-08:网络编程(UDP传输多线程)
- 发送和接收在一个窗口完成
package test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Scanner; public class Demo5 { public static void main(String[] args) { new Receive().start(); new Send().start(); } } class Receive extends Thread { public void run(){ try { DatagramSocket socket = new DatagramSocket(6667); DatagramPacket packet = new DatagramPacket(new byte[1024],1024); while(true) { socket.receive(packet); byte[] arr = packet.getData(); int len = packet.getLength(); String ip = packet.getAddress().getHostAddress(); int port = packet.getPort(); System.out.println(ip + ":" + port + ":" + new String(arr,0,len)); } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class Send extends Thread { public void run() { try { Scanner sc = new Scanner(System.in); DatagramSocket socket = new DatagramSocket(); while(true) { String line = sc.nextLine(); if("quit".equals(line)) { break; } DatagramPacket packet = new DatagramPacket(line.getBytes(),line.getBytes().length,InetAddress.getByName("127.0.0.1"),6667); socket.send(packet); } socket.close(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
26-(09-15):UDP
UDP聊天图形化界面
UDP聊天发送功能
UDP聊天记录功能
UDP聊天清屏功能
UDP聊天震动功能
UDP聊天快捷键和代码优化
UDP聊天生成jar文件
留坑待填
26-16:网络编程(TCP协议)
客户端
- 创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器
- 调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流
- 输入流可以读取服务端输出流写出的数据
- 输出流可以写出数据到服务端的输入流
服务端
- 创建ServerSocket(需要指定端口号)
- 调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket
- 调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流
- 输入流可以读取客户端输出流写出的数据
- 输出流可以写出数据到客户端的输入流
26-17:网络编程(TCP协议代码优化)
- 客户端
留坑待填
- 服务端
留坑待填
26-18:网络编程(服务端是多线程的)
留坑待填
26-(19-20):网络编程(练习)
留坑待填
相关推荐
kukelook 2020-04-22
程序员官方BLOG 2015-07-10
Java填坑之路 2019-09-08
ioriguojun 2013-01-25
madmanG 2016-03-13
ellende 2019-06-25
韩世雷程序员 2019-06-25
ellende 2019-06-21
taoxiuyi0 2019-06-21
javaMerea 2019-06-21
taoxiuyi0 2019-06-21
叨逼叨两句收拾收拾~18-11:Collection中的常见方法sortpackage com.test.demo001;System.out.println; //根据默认排序结果获取集合中的最大值
javaMerea 2019-06-21
javaMerea 2019-06-21
韩世雷程序员 2019-06-21
taoxiuyi0 2019-06-21
ellende 2019-06-21
韩世雷程序员 2019-06-21
韩世雷程序员 2019-06-21
ellende 2019-06-21