码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员__GUI_网络编程

时间:2015-05-11 08:55:56      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:java   编程   语言   黑马程序员   

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


GUI

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

[java] view plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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 plaincopy
  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.   

黑马程序员__GUI_网络编程

标签:java   编程   语言   黑马程序员   

原文地址:http://blog.csdn.net/haojude/article/details/45637921

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!