国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java socket編程入門[1]

2019-11-17 06:34:17
字體:
來源:轉載
供稿:網友

本教程由IBM DevelopWorks提供,版權歸IBM所有


原作:Roy Miller   翻譯:Robinh00d[CSTC]

翻譯本文的目的僅僅是為了練習,本教程版權歸IBM所有,本人不對其擁有版權

第一章:學習提示

我適合學習這份教程嗎

    Socket提供了兩臺計算機之間進行通訊的機制,在James Gosling注重java語言之前就已經很聞名了。Java語言使你更簡單有效的使用Socket開發而無需了解操作系統的底層機制。大部分討論Java編碼的書籍都沒有涉及這一主題,或者是只是“點到為止”,留給讀者大量的想象空間。這份教程就是讓你了解在你的Java代碼中如何更有效的使用Socket所需的知識。包含以下內容:
•什么是Socket
•它位于你的應用程序的哪些地方
•能正常運行的最簡單的Socket例程――幫助你理解Java Socket的基礎知識
•具體剖析另外兩個探討如何在多線程和具有連接池環境中使用套接字的示例
•簡要討論在現實世界中的一個Socket應用程序

    假如你能夠描述如何使用java.net這個包里的類,這份教程對你來說也許基礎了一點。盡管它是一份提高技術的好資料,但是假如你已經在PC或者其他平臺上有過長期Socket的開發經歷,這部分提示也許會讓你產生厭煩,但是假如你并不是很理解Socket,并且只想知道“什么是Socket”以及“怎么將Socket應用在自己的Java代碼中”的話,這份教程則是一個很好的開始。

第二章:Socket基礎

介紹

大多程序員,無論是否使用Java語言編程,都不希望知道太多關于不同的計算機之間相互通信的底層知識。程序員希望處理更容桌斫獾母卟慍橄蟆3絳蛟備M盟鞘煜膉ava的構造,通過直觀接口與對象交互。
Socket存在于兩個領域--我們寧愿處理抽象層而避免涉及底層細節,這一章所講解的底層細節僅用于你理解抽象應用所必須的知識。

計算機組網
計算機之間用一種非常簡單的方式來進行操作和通信。電腦芯片是一種開關,用1和0來儲存和傳輸數據。當計算機希望共享數據時,它們需要所作的全部就是以相同的速度,相同的順序,相同的時間等往返傳輸上百萬的數據流。當你想在兩個應用程序之間通信時,你怎么想考慮這些細節呢?
為了避免上面提到的事情,我們每次需要一組包協議用同樣的方法來完成工作。這將使我們能夠處理應用程序級的工作而不需要擔心底層網絡技術的細節。這樣設置的包協議被稱作“棧”。TCP/ip是最常見的協議棧。大部分協議棧(包括TCP/IP)都大致遵循ISO國際標準化組織的開放系統互連參考模型(Open Systems Interconnect Reference Model,OSIRM)。OSIRM把計算機網絡定義為7個邏輯層
(見下圖)很多公司對于這個模型的某些層的構造有過貢獻。從產生電子信號()到給應用程序提供數據。TCP/IP映射到OSI模型的兩層,如圖所示。

我們不必過多的深入這些層的細節,但我們應該知道socket位于模型的什么位置。


Socket存在于哪些地方?
Socket大致位于OSI模型的會話層(下圖),會話層夾在面向應用的高層(上)的層和實時數據通信層(下)之間。會話層在兩臺計算機之間為治理和控制數據流提供服務。作為這一層的一部分,socket提供一個隱藏從傳輸線上獲取bytes和bits的復雜性的抽象。換言之,socket答應我們讓應用程序表示它想發送bytes。
socket隱藏了完成該工作的具體細節。
  


當你拿起電話說話時,電話把你的聲音轉換電信號。電話機是人和電信網絡之間的接口。你不必知道你的聲音是如何轉換的細節,只需知道要你想和誰聯系。同樣的道理,socket隱藏了復雜的傳輸二進制數據而扮演高層接口的角色。

向一個應用程序曝光socket

當你在使用socket編寫代碼時,你的代碼工作在表示層。表示層提供一個能讓應用層使用的公共信息表示(rePResentation of information)。假如你想把你的應用程序連接到CC銀行系統而僅能使用EBCDIC。你的域對象(domain objects)用ASCII格式儲存信息。既然這樣,你得負責在表示層編寫代碼把EBCDIC的數據轉換成ASCII格式,然后(比如)向應用層提供一個域對象(domain objects)。應用層可以用域對象(domain objects)做它想做的任何事情。
  



你編寫的socket處理代碼僅存在于表示層。應用層并不需要知道socket如何工作。
什么是socket?


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 茌平县| 辽源市| 澄迈县| 遵化市| 开化县| 宜君县| 七台河市| 新疆| 宜城市| 赞皇县| 温州市| 平利县| 石台县| 宜君县| 通河县| 乐陵市| 安丘市| 昌乐县| 特克斯县| 大姚县| 蒙自县| 东安县| 西乌珠穆沁旗| 讷河市| 泰宁县| 弋阳县| 中卫市| 密山市| 都兰县| 尉氏县| 杂多县| 榆中县| 中方县| 孙吴县| 双辽市| 资中县| 朔州市| 邵阳县| 清徐县| 罗甸县| 精河县|