自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java Socket驅(qū)動(dòng)關(guān)鍵代碼經(jīng)典剖析

開(kāi)發(fā) 后端
Java Socket驅(qū)動(dòng)一直是我們不變的研究對(duì)象,當(dāng)然在很多方面我們還是需要從源代碼中尋找我們想要的答案,下面我們就詳細(xì)的看看。

Java Socket驅(qū)動(dòng)如何才能變得***?其實(shí)只要掌握好相關(guān)的代碼就可以把相關(guān)的一起搞定,下面我們就看看在Java Socket驅(qū)動(dòng)中的關(guān)鍵代碼,希望大家有所收獲。那么我們首先來(lái)看看各種接口上的知識(shí)。

由于是基于事件Java Socket驅(qū)動(dòng)的組件,所以MySingleThreadServer1類(lèi)要繼承ActionListener接口,實(shí)現(xiàn)該接口唯一的方法actionPerformed(ActionEvent e),即當(dāng)觸發(fā)某一事件時(shí),執(zhí)行該方法內(nèi)的代碼。關(guān)鍵代碼如下:

 

  1. public class MySingleThreadServer1 implements 
    ActionListener{  
  2. private Frame f;  
  3. private TextArea ta1 = newTextArea("",5,40,TextArea.
    SCROLLBARS_VERTICAL_ONLY);   
  4. private TextArea ta2 = new TextArea("",16,52,TextArea.
    SCROLLBARS_VERTICAL_ONLY);   
  5. private Button b;  
  6. private String msg ="";  
  7. OutputStream os;  
  8. DataOutputStream dos;  
  9. InputStream is;  
  10. DataInputStream dis;  
  11. ServerSocket ss;  
  12. Socket s;  
  13. public MySingleThreadServer1(){  
  14. f = new Frame("server:小馬");  
  15. b = new Button("服務(wù)器發(fā)送");  
  16. f.setBackground(Color.WHITE);  
  17. b.setBackground(Color.LIGHT_GRAY);  
  18. ta1.setBackground(Color.LIGHT_GRAY);  
  19. ta2.setBackground(Color.LIGHT_GRAY);  
  20. ta2.setEditable(false); //set to only be read  
  21. f.setLayout(new FlowLayout(FlowLayout.LEFT));  
  22. f.add(ta1);  
  23. f.add(b);  
  24. f.add(ta2);  
  25. f.setLocation(200,200);  
  26. f.setSize(400,400);  
  27. f.setResizable(false);  
  28. f.setVisible(true);  
  29. b.addActionListener(this);   
  30. f.addWindowListener(new WindowAdapter(){  
  31. public void windowClosing(WindowEvent e){  
  32. System.exit(0);   
  33. }  
  34. });  
  35. try{  
  36. ss = new ServerSocket(7777);  
  37. s = ss.accept();  
  38. is = s.getInputStream();  
  39. dis = new DataInputStream(is);  
  40. os = s.getOutputStream();  
  41. dos = new DataOutputStream(os);  
  42. serverReadSome(); //接受客戶端發(fā)來(lái)的信息  
  43. }catch(IOException e){  
  44. e.printStackTrace();  
  45. }  
  46. }  
  47. public void actionPerformed(ActionEvent e){ 
    //服務(wù)器點(diǎn)擊按鈕觸發(fā)時(shí)間  
  48. try{  
  49. msg = ta1.getText();  
  50. dos.writeUTF(msg);  
  51. ta2.append("小馬:"+msg+"\n");  
  52. ta1.setText("");  
  53. ta1.requestFocus();  
  54. }catch(IOException ioe){  
  55. ioe.printStackTrace();  
  56. }  
  57. }  
  58. public void serverReadSome(){  
  59. try{  
  60. while(true){  
  61. msg = dis.readUTF();  
  62. ta2.append("小徐:"+msg+"\n");  
  63. }  
  64. }catch(IOException ioe){  
  65. ioe.printStackTrace();  
  66. }  
  67. }  
  68. public static void main(String args[]){  
  69. new MySingleThreadServer1();  
  70. }  

 

我把GUI的初始化信息和事件驅(qū)動(dòng)的信息放到了MySingleThreadServer1的構(gòu)造函數(shù)中,使之new一個(gè)的時(shí)候就初始化該類(lèi)。以上就是對(duì)Java Socket驅(qū)動(dòng)的詳細(xì)介紹。希望大家有所收獲。

【編輯推薦】

  1. Java Socket通訊如何進(jìn)行客戶端的信息通信
  2. Java Socket通訊客戶端代碼編寫(xiě)教程
  3. Java Socket通訊實(shí)際操作手冊(cè)
  4. java Socket多線程客戶端配置方案
  5. java Socket多線程服務(wù)器源代碼介紹
責(zé)任編輯:張浩 來(lái)源: TT網(wǎng)絡(luò)
相關(guān)推薦

2010-03-17 14:22:40

Java Socket

2010-03-19 15:01:23

Java Socket

2009-08-27 17:14:36

C# Socket

2010-02-22 16:09:33

WCF宿主

2010-06-01 12:19:27

SVN分支與合并

2010-04-09 13:48:31

Oracle SMON

2010-03-02 13:43:01

WCF事務(wù)演示

2011-12-15 10:10:33

Javanio

2022-06-02 14:18:23

代碼疫苗安全威脅免疫

2009-12-23 13:17:36

Linux設(shè)備驅(qū)動(dòng)

2010-08-31 14:01:48

CSS

2010-03-19 14:42:29

Java Socket

2010-03-22 13:25:47

Java Socket

2010-03-18 16:49:43

Java Socket

2025-04-18 04:05:00

2010-03-19 16:51:53

Java Socket

2023-10-26 08:12:37

Java變量類(lèi)型

2010-03-19 10:31:06

Java Socket

2010-03-12 14:28:45

Python if語(yǔ)句

2010-01-26 17:53:30

Android代碼結(jié)構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)