Android之socket网络编程


最近在学习Android关于网络编程的知识,在这个过程中也遇到了不少问题,这篇文章是android基于socket的网络编程,能让人更好的了解网络编程底层的相关知识。其他话就不说了,直接看代码吧。

服务器端采用的是图形化界面:

  1. package com.app.qrs;  
  2.   
  3. import java.awt.Container;  
  4. import java.awt.event.ActionEvent;  
  5. import java.awt.event.ActionListener;  
  6. import java.io.OutputStream;  
  7. import java.net.InetAddress;  
  8. import java.net.ServerSocket;  
  9. import java.net.Socket;  
  10.   
  11. import javax.swing.JButton;  
  12. import javax.swing.JFrame;  
  13. import javax.swing.JLabel;  
  14. import javax.swing.JPanel;  
  15. import javax.swing.JTextField;  
  16.   
  17. class Myserver extends JFrame implements ActionListener{  
  18.     public static final String Server_Message = "服务器发布的信息:";  
  19.     private JTextField messagetext;  
  20.     private JButton ok;  
  21.     public static String servermsg = "hello android Client! 我是该程序的程序员:吴伟栋!";  
  22.     public  Myserver()  
  23.     {  
  24.      super("信息发布");  
  25.      Container c = getContentPane();  
  26.         JPanel panel = new JPanel();  
  27.         JLabel lablename = new JLabel(Server_Message);  
  28.         messagetext = new JTextField(30);  
  29.         messagetext.addActionListener(this);  
  30.         panel.add(lablename);  
  31.         panel.add(messagetext);  
  32.         ok = new JButton("确定");  
  33.         ok.addActionListener(this);  
  34.         panel.add(ok);  
  35.         c.add(panel);  
  36.     }  
  37.     public static ServerSocket server;  
  38.  /** 
  39.   * @param args 
  40.   */  
  41.  public static void main(String[] args) {  
  42.   Myserver ms = new Myserver();  
  43.   ms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  44.   ms.setSize(280160);  
  45.   ms.setVisible(true);  
  46.     
  47.   try  
  48.   {  
  49.      
  50.    server = new ServerSocket(10000);  
  51.    System.out.println(InetAddress.getLocalHost());  
  52.    while(true)  
  53.    {  
  54.      System.out.println("------------->"+servermsg);  
  55.      Socket socket = server.accept();  
  56.      OutputStream out = socket.getOutputStream();  
  57.      String msg = servermsg;  
  58.      out.write(msg.getBytes());  
  59.      socket.close();  
  60.    }  
  61.   }catch(Exception e)  
  62.   {  
  63.    e.printStackTrace();  
  64.   }  
  65.   // TODO Auto-generated method stub   
  66.   
  67.  }  
  68.  @Override  
  69.  public void actionPerformed(ActionEvent e) {  
  70.   /* 
  71.    *  
  72.    * 数据缓存解决了客服端存在中间一段黑屏的效果 
  73.    * 即在客服端第一次点击刷新按钮时会有黑屏效果 
  74.    * 第二次才能出现信息。 
  75.    * 但在客服端还是存在bug(服务器未更新信息,客服端多次刷新的时候) 
  76.    * **/  
  77.     String servermsgbuffer = new String();  
  78.     servermsgbuffer=messagetext.getText();  
  79.     servermsg = servermsgbuffer;  
  80.     
  81.  }  
  82. }  
  • 1
  • 2
  • 下一页

相关内容