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

Java Socket對(duì)象原理的詳細(xì)介紹

開發(fā) 后端
Java Socket對(duì)象一直在我們的編程中廣泛應(yīng)用。其實(shí)一直在不斷發(fā)展的時(shí)候需要我們學(xué)校的很多。下面就先從原理向大家介紹下。

Java Socket對(duì)象需要我們大家詳細(xì)的學(xué)習(xí),相關(guān)的問題一直在困擾著我們。下面我們就看看如何才能更好的使用Java Socket對(duì)象。那么首先我們就從原理來看一看。

這個(gè)設(shè)計(jì)原理非常類似于平時(shí)打電話進(jìn)行通訊:#t#

(1)首先通訊雙方各有一臺(tái)電話機(jī),在上述模型中就是Socket;

(2)通訊一方拔打電話,試圖建立連接,在上述模型中就是客戶端建立Java Socket對(duì)象;另一方隨時(shí)監(jiān)聽有沒有呼叫,當(dāng)有呼叫到來時(shí),摘機(jī),在上述模型中就是在服務(wù)器端建立一個(gè)Java Socket對(duì)象,然后用其accept()方法監(jiān)聽客戶端的連接請(qǐng)求,當(dāng)有連接請(qǐng)求時(shí)accept方法返回客戶端的Socket,于是雙方就建立起連接;

(3)雙方通話,過程中雙方都可以說和聽,在上述模型中,每個(gè)Socket可以利用輸入輸出流進(jìn)行讀和寫兩種操作;在電話中一方聽到的是對(duì)方說出的,反之亦然;上述模型中,一方讀出的也是對(duì)方寫入的,而寫入的則是對(duì)方要讀出的

(4)掛斷。

建立Socket通信模型

首先,在服務(wù)器端建立一個(gè)ServerSocket對(duì)象,用于監(jiān)聽客戶端的連接請(qǐng)求:

  1. ServerSocket server;try{server=new ServerSocket(4321);}  
  2. catch(Exception e){System.out.println("Error:"+e);} 

在服務(wù)器端建立ServerSocket對(duì)象時(shí)必須進(jìn)行異常處理,以便程序出錯(cuò)時(shí)及時(shí)作出響應(yīng)。生成ServerSocket對(duì)象時(shí)必須選擇一個(gè)端口注冊(cè),以和其它服務(wù)器程序分開,使互不干擾。應(yīng)使用1024以上的端口進(jìn)行通信,以免和常規(guī)通信發(fā)生端口沖突。

其次,在服務(wù)器端調(diào)用ServerSocket的accept()方法進(jìn)行監(jiān)聽,等待其它程序的連接請(qǐng)求。在連接請(qǐng)求收到之前一直阻塞調(diào)用線程,當(dāng)有一個(gè)連接請(qǐng)求時(shí),返回請(qǐng)求連接的Java Socket對(duì)象:

  1. Socket socket;  
  2. try{socket=server.a(chǎn)ccept();}  
  3. catch(Exception e){System.out.println("Error:"+e);} 

當(dāng)接到一個(gè)連接請(qǐng)求時(shí),accept方法返回客戶端的socket對(duì)象,于是連接成功。正常情況下,通過交換,由另外的線程去處理該連接,而server釋放出來繼續(xù)監(jiān)聽下一個(gè)連接請(qǐng)求。

最后,在客戶端建立一個(gè)Java Socket對(duì)象,請(qǐng)求建立連接:

  1. Socket socket;  
  2. try{socket=new Socket("Server Nane",4321);}  
  3. catch(Exception e){System.out.println("Error:"+e);} 

在客戶端建立Java Socket對(duì)象時(shí)也必須時(shí)行異常處理,主機(jī)名和端口號(hào)與連接的服務(wù)器名和提供該服務(wù)的服務(wù)程序的監(jiān)聽端口必須一致。

 

責(zé)任編輯:張浩 來源: 博客園
相關(guān)推薦

2009-06-11 10:00:05

Java Socket

2010-03-19 17:47:02

Java Socket

2010-03-18 14:46:18

Java SynDem

2010-03-18 20:13:03

Java socket

2019-12-31 20:55:13

Socket通信TCP

2011-07-05 16:15:49

面向?qū)ο?/a>

2011-06-28 11:06:16

Scala

2011-06-30 18:33:09

分詞

2010-01-04 14:11:51

ADO.Records

2023-11-16 09:01:37

Hadoop數(shù)據(jù)庫(kù)

2009-11-18 11:05:27

PHP串行化

2009-08-25 17:28:23

C#創(chuàng)建DataSet

2009-11-11 09:11:19

2011-07-06 17:37:38

ASP

2011-07-06 17:25:20

2011-06-30 09:07:00

Java EEWeb服務(wù)

2011-07-11 16:55:31

Java

2011-07-22 13:00:46

java

2011-07-22 16:37:01

java接口

2009-12-09 15:22:10

點(diǎn)贊
收藏

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