黑马程序员__GUI_网络编程

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


GUI

1.事件处理就是处理用户的一个操作这个事件,在事件发生的时候程序应做出什么反应。当事件发生在哪个组件上, 哪个组件就可以说是事件源。给事件源添加一个监听器对象,监听器对象中包含若干事件处理方法。如果事件发生了, 事件处理方法就会自动执行
 

[java]  view plain copy
  1. public class Demo1_Frame {  
  2.     public static void main(String[] args) {  
  3.         Frame f = new Frame();              //创建不可见窗体  
  4.         f.setLocation(50050);             //设置窗体的位置  
  5.         f.setSize(400600);                //设置窗体的宽和高  
  6.         f.setTitle("GUI");              //设置窗体的标题  
  7.         f.setLayout(new FlowLayout());          //设置布局管理器为流式布局  
  8.         Button b1 = new Button("按钮1");  
  9.         f.add(b1);  
  10.         f.addWindowListener(new MyWindowAdapter());  
  11.         f.setVisible(true);             //显示窗体  
  12.     }  
  13.   
  14. }  


2.适配器
  适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
  目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了

[java]  view plain copy
  1. class MyWindowAdapter extends WindowAdapter {  
  2.     public void windowClosing(WindowEvent e) {  
  3.         System.exit(0);                 //退出jvm虚拟机  


网络编程

1.IP地址
 每个设备在网络中的唯一标识
 每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据使用这个地址。 
 ipconfig:查看本机IP
 ping:测试连接
 本地回路地址:127.0.0.1

 广播地址:255.255.255.255
 IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。 
 IPv6:8组,每组4个16进制数。子子孙孙都够用。

2.端口号
 每个程序在设备上的唯一标识
 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。
 端口号范围从0-65535
 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。
 常用端口
3.网络协议
 为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
 UDP
 面向无连接,数据不安全,速度快。不区分客户端与服务端。
 TCP
 面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。
 三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据。

4.Socket
 通信的两端都有Socket。
 网络通信其实就是Socket间的通信。
 数据在两个Socket间通过IO流传输。
 Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。

5.UDP传输
 1).发送

[java]  view plain copy
  1. public class Demo1_Send {  
  2.   
  3.     /** 
  4.      * 1.发送 
  5.         创建DatagramSocket, 随机端口号 
  6.         创建DatagramPacket, 指定数据, 长度, 地址, 端口 
  7.         使用DatagramSocket发送DatagramPacket 
  8.         关闭DatagramSocket 
  9.      * @throws IOException  
  10.      */  
  11.     public static void main(String[] args) throws IOException {  
  12.         String str = "黑马程序员,传智播客";  
  13.         DatagramSocket socket = new DatagramSocket();                           //创建Socket对象,相当于创建码头  
  14.         DatagramPacket packet =                                                 //创建Packet对象  
  15.                 new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);  
  16.         socket.send(packet);                                                      
  17.         socket.close();  
  18.     }  
  19.   
  20. }  



 2).接收

[java]  view plain copy
  1. public class Demo1_Receive {  
  2.   
  3.     /** 
  4.      * 2.接收 
  5.         创建DatagramSocket, 指定端口号 
  6.         创建DatagramPacket, 指定数组, 长度 
  7.         使用DatagramSocket接收DatagramPacket 
  8.         关闭DatagramSocket 
  9.         从DatagramPacket中获取数据 
  10.      * @throws IOException  
  11.      */  
  12.     public static void main(String[] args) throws IOException {  
  13.         DatagramSocket socket = new DatagramSocket(6666);   //创建Socket对象  
  14.         DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);//创建Packet对象  
  15.         socket.receive(packet);             //接收数据  
  16.         byte[] arr = packet.getData();              //获取数据  
  17.         int len = packet.getLength();           //获取有效的字节个数  
  18.         System.out.println(new String(arr,0,len));  
  19.           
  20.         socket.close();  
  21.     }  
  22.   
  23. }  


 3).接收方获取ip和端口号
 String ip = packet.getAddress().getHostAddress();
 int port = packet.getPort();


6.TCP传输
 1).客户端

[java]  view plain copy
  1. public class Demo1_Client {  
  2.   
  3.     /** 
  4.      *1.客户端 
  5.         创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器 
  6.         调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流 
  7.         输入流可以读取服务端输出流写出的数据 
  8.         输出流可以写出数据到服务端的输入流 
  9.      * @throws Exception  
  10.      * @throws UnknownHostException  
  11.      */  
  12.     public static void main(String[] args) throws Exception {  
  13.         Socket socket = new Socket("127.0.0.1"54321); //创建客户端  
  14.         InputStream is = socket.getInputStream();   //获取输入流  
  15.         OutputStream os = socket.getOutputStream(); //获取输出流  
  16.           
  17.         byte[] arr = new byte[1024];  
  18.         int len = is.read(arr);             //读取服务器发送的数据  
  19.         System.out.println(new String(arr,0,len));  
  20.           
  21.         os.write("IT培训到哪家".getBytes());         //将数据写给服务器  
  22.           
  23.         socket.close();  
  24.     }  
  25.   
  26. }  


 2).服务端

[java]  view plain copy
  1. public class Demo1_Server {  
  2.   
  3.     /** 
  4.      * 2.服务端 
  5.         创建ServerSocket(需要指定端口号) 
  6.         调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket 
  7.         调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流 
  8.         输入流可以读取客户端输出流写出的数据 
  9.         输出流可以写出数据到客户端的输入流 
  10.      * @throws Exception  
  11.      */  
  12.     public static void main(String[] args) throws Exception {  
  13.         ServerSocket server = new ServerSocket(54321);  //创建服务端,绑定54321端口  
  14.         Socket socket = server.accept();        //接受客户端请求  
  15.         InputStream is = socket.getInputStream();   //获取字节输入流  
  16.         OutputStream os = socket.getOutputStream(); //获取字节输出流  
  17.         os.write("黑马程序员与传智播客".getBytes());  //将内容写给客户端  
  18.           
  19.         byte[] arr = new byte[1024];  
  20.         int len = is.read(arr);             //从客户端读取数据  
  21.         System.out.println(new String(arr,0,len));                
  22.           
  23.         server.close();  
  24.         socket.close();  
  25.     }  
  26.  }

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

兴趣是学习编程最好的老师

不积跬步,无以至千里

这辈子没办法做太多事情,所以每一件都要做到精彩绝伦。


<GUI>

1.事件处理就是处理用户的一个操作这个事件,在事件发生的时候程序应做出什么反应。当事件发生在哪个组件上, 哪个组件就可以说是事件源。给事件源添加一个监听器对象,监听器对象中包含若干事件处理方法。如果事件发生了, 事件处理方法就会自动执行
 

[java]  view plain copy
  1. public class Demo1_Frame {  
  2.     public static void main(String[] args) {  
  3.         Frame f = new Frame();              //创建不可见窗体  
  4.         f.setLocation(50050);             //设置窗体的位置  
  5.         f.setSize(400600);                //设置窗体的宽和高  
  6.         f.setTitle("GUI");              //设置窗体的标题  
  7.         f.setLayout(new FlowLayout());          //设置布局管理器为流式布局  
  8.         Button b1 = new Button("按钮1");  
  9.         f.add(b1);  
  10.         f.addWindowListener(new MyWindowAdapter());  
  11.         f.setVisible(true);             //显示窗体  
  12.     }  
  13.   
  14. }  


2.适配器
  适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
  目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了

[java]  view plain copy
  1. class MyWindowAdapter extends WindowAdapter {  
  2.     public void windowClosing(WindowEvent e) {  
  3.         System.exit(0);                 //退出jvm虚拟机  

<网络编程>

1.IP地址
 每个设备在网络中的唯一标识
 每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据使用这个地址。 
 ipconfig:查看本机IP
 ping:测试连接
 本地回路地址:127.0.0.1

 广播地址:255.255.255.255
 IPv4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。 
 IPv6:8组,每组4个16进制数。子子孙孙都够用。

2.端口号
 每个程序在设备上的唯一标识
 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上,还要明确发到哪个程序。
 端口号范围从0-65535
 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。
 常用端口
3.网络协议
 为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
 UDP
 面向无连接,数据不安全,速度快。不区分客户端与服务端。
 TCP
 面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。
 三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据。

4.Socket
 通信的两端都有Socket。
 网络通信其实就是Socket间的通信。
 数据在两个Socket间通过IO流传输。
 Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。

5.UDP传输
 1).发送

[java]  view plain copy
  1. public class Demo1_Send {  
  2.   
  3.     /** 
  4.      * 1.发送 
  5.         创建DatagramSocket, 随机端口号 
  6.         创建DatagramPacket, 指定数据, 长度, 地址, 端口 
  7.         使用DatagramSocket发送DatagramPacket 
  8.         关闭DatagramSocket 
  9.      * @throws IOException  
  10.      */  
  11.     public static void main(String[] args) throws IOException {  
  12.         String str = "黑马程序员,传智播客";  
  13.         DatagramSocket socket = new DatagramSocket();                           //创建Socket对象,相当于创建码头  
  14.         DatagramPacket packet =                                                 //创建Packet对象  
  15.                 new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);  
  16.         socket.send(packet);                                                      
  17.         socket.close();  
  18.     }  
  19.   
  20. }  



 2).接收

[java]  view plain copy
  1. public class Demo1_Receive {  
  2.   
  3.     /** 
  4.      * 2.接收 
  5.         创建DatagramSocket, 指定端口号 
  6.         创建DatagramPacket, 指定数组, 长度 
  7.         使用DatagramSocket接收DatagramPacket 
  8.         关闭DatagramSocket 
  9.         从DatagramPacket中获取数据 
  10.      * @throws IOException  
  11.      */  
  12.     public static void main(String[] args) throws IOException {  
  13.         DatagramSocket socket = new DatagramSocket(6666);   //创建Socket对象  
  14.         DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);//创建Packet对象  
  15.         socket.receive(packet);             //接收数据  
  16.         byte[] arr = packet.getData();              //获取数据  
  17.         int len = packet.getLength();           //获取有效的字节个数  
  18.         System.out.println(new String(arr,0,len));  
  19.           
  20.         socket.close();  
  21.     }  
  22.   
  23. }  


 3).接收方获取ip和端口号
 String ip = packet.getAddress().getHostAddress();
 int port = packet.getPort();


6.TCP传输
 1).客户端

[java]  view plain copy
  1. public class Demo1_Client {  
  2.   
  3.     /** 
  4.      *1.客户端 
  5.         创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器 
  6.         调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流 
  7.         输入流可以读取服务端输出流写出的数据 
  8.         输出流可以写出数据到服务端的输入流 
  9.      * @throws Exception  
  10.      * @throws UnknownHostException  
  11.      */  
  12.     public static void main(String[] args) throws Exception {  
  13.         Socket socket = new Socket("127.0.0.1"54321); //创建客户端  
  14.         InputStream is = socket.getInputStream();   //获取输入流  
  15.         OutputStream os = socket.getOutputStream(); //获取输出流  
  16.           
  17.         byte[] arr = new byte[1024];  
  18.         int len = is.read(arr);             //读取服务器发送的数据  
  19.         System.out.println(new String(arr,0,len));  
  20.           
  21.         os.write("IT培训到哪家".getBytes());         //将数据写给服务器  
  22.           
  23.         socket.close();  
  24.     }  
  25.   
  26. }  


 2).服务端

[java]  view plain copy
  1. public class Demo1_Server {  
  2.   
  3.     /** 
  4.      * 2.服务端 
  5.         创建ServerSocket(需要指定端口号) 
  6.         调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket 
  7.         调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流 
  8.         输入流可以读取客户端输出流写出的数据 
  9.         输出流可以写出数据到客户端的输入流 
  10.      * @throws Exception  
  11.      */  
  12.     public static void main(String[] args) throws Exception {  
  13.         ServerSocket server = new ServerSocket(54321);  //创建服务端,绑定54321端口  
  14.         Socket socket = server.accept();        //接受客户端请求  
  15.         InputStream is = socket.getInputStream();   //获取字节输入流  
  16.         OutputStream os = socket.getOutputStream(); //获取字节输出流  
  17.         os.write("黑马程序员与传智播客".getBytes());  //将内容写给客户端  
  18.           
  19.         byte[] arr = new byte[1024];  
  20.         int len = is.read(arr);             //从客户端读取数据  
  21.         System.out.println(new String(arr,0,len));                
  22.           
  23.         server.close();  
  24.         socket.close();  
  25.     }  
  26.   
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值