歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之socket網絡編程

Android之socket網絡編程

日期:2017/3/1 10:50:56   编辑:Linux編程

最近在學習Android關於網絡編程的知識,在這個過程中也遇到了不少問題,這篇文章是android基於socket的網絡編程,能讓人更好的了解網絡編程底層的相關知識。其他話就不說了,直接看代碼吧。

服務器端采用的是圖形化界面:

  1. package com.app.qrs;
  2. import java.awt.Container;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.io.OutputStream;
  6. import java.net.InetAddress;
  7. import java.net.ServerSocket;
  8. import java.net.Socket;
  9. import javax.swing.JButton;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JPanel;
  13. import javax.swing.JTextField;
  14. class Myserver extends JFrame implements ActionListener{
  15. public static final String Server_Message = "服務器發布的信息:";
  16. private JTextField messagetext;
  17. private JButton ok;
  18. public static String servermsg = "hello android Client! 我是該程序的程序員:吳偉棟!";
  19. public Myserver()
  20. {
  21. super("信息發布");
  22. Container c = getContentPane();
  23. JPanel panel = new JPanel();
  24. JLabel lablename = new JLabel(Server_Message);
  25. messagetext = new JTextField(30);
  26. messagetext.addActionListener(this);
  27. panel.add(lablename);
  28. panel.add(messagetext);
  29. ok = new JButton("確定");
  30. ok.addActionListener(this);
  31. panel.add(ok);
  32. c.add(panel);
  33. }
  34. public static ServerSocket server;
  35. /**
  36. * @param args
  37. */
  38. public static void main(String[] args) {
  39. Myserver ms = new Myserver();
  40. ms.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  41. ms.setSize(280, 160);
  42. ms.setVisible(true);
  43. try
  44. {
  45. server = new ServerSocket(10000);
  46. System.out.println(InetAddress.getLocalHost());
  47. while(true)
  48. {
  49. System.out.println("------------->"+servermsg);
  50. Socket socket = server.accept();
  51. OutputStream out = socket.getOutputStream();
  52. String msg = servermsg;
  53. out.write(msg.getBytes());
  54. socket.close();
  55. }
  56. }catch(Exception e)
  57. {
  58. e.printStackTrace();
  59. }
  60. // TODO Auto-generated method stub
  61. }
  62. @Override
  63. public void actionPerformed(ActionEvent e) {
  64. /*
  65. *
  66. * 數據緩存解決了客服端存在中間一段黑屏的效果
  67. * 即在客服端第一次點擊刷新按鈕時會有黑屏效果
  68. * 第二次才能出現信息。
  69. * 但在客服端還是存在bug(服務器未更新信息,客服端多次刷新的時候)
  70. * **/
  71. String servermsgbuffer = new String();
  72. servermsgbuffer=messagetext.getText();
  73. servermsg = servermsgbuffer;
  74. }
  75. }
Copyright © Linux教程網 All Rights Reserved