大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 網絡編程之Java socket并發編程

網絡編程之Java socket并發編程

更新時間:2020-05-12 16:25:54 來源:動力節點 瀏覽2412次

當我們想要在Java中使用TCP/IP通過網絡連接到服務器時,就需要創建java.net.Socket對象并連接到服務器。假如希望使用JavaNIO,也可以創建JavaNIO中的SocketChannel對象。

網絡編程之Java socket并發編程

    創建Socket

    下面的示例代碼是連接到IP地址為78.64.84.171服務器上的80端口,這臺服務器就是我們的Web服務器(www.jenkov.com),而80端口就是Web服務端口。

    Socketsocket=newSocket("78.46.84.171",80);

    我們也可以像如下示例中使用域名代替IP地址:

    Socketsocket=newSocket("jenkov.com",80);

    Socket發送數據

    要通過Socket發送數據,我們需要獲取Socket的輸出流(OutputStream),示例代碼如下:

網絡編程之Java socket并發編程

    代碼非常簡單,但是想要通過網絡將數據發送到服務器端,一定不要忘記調用flush()方法。操作系統底層的TCP/IP實現會先將數據放入一個更大的數據緩存塊中,而緩存塊的大小是與TCP/IP的數據包大小相適應的。(譯者注:調用flush()方法只是將數據寫入操作系統緩存中,并不保證數據會立即發送)

    Socket讀取數據

    從Socket中讀取數據,我們就需要獲取Socket的輸入流(InputStream),代碼如下:

網絡編程之Java socket并發編程

    代碼也并不復雜,但需要注意的是,從Socket的輸入流中讀取數據并不能讀取文件那樣,一直調用read()方法直到返回-1為止,因為對Socket而言,只有當服務端關閉連接時,Socket的輸入流才會返回-1,而是事實上服務器并不會不停地關閉連接。假設我們想要通過一個連接發送多個請求,那么在這種情況下關閉連接就顯得非常愚蠢。

    因此,從Socket的輸入流中讀取數據時我們必須要知道需要讀取的字節數,這可以通過讓服務器在數據中告知發送了多少字節來實現,也可以采用在數據末尾設置特殊字符標記的方式連實現。

    關閉Socket

    當使用完Socket后我們必須將Socket關閉,斷開與服務器之間的連接。關閉Socket只需要調用Socket.close()方法即可,代碼如下:

網絡編程之Java socket并發編程

 以上就是動力節點java培訓機構的小編針對“網絡編程之Java socket并發編程”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产在线精品香蕉综合网一区 | 狠狠色伊人亚洲综合成人 | 久久se精品一区二区国产 | 久久这里只有精品国产99 | 午夜三级做爰视频在线看 | xxxxyoujizz护士| 欧美日韩在线播一区二区三区 | 欧美性性性性性色大片 | 亚洲精品久久久久综合网 | 国产精彩视频 | 欧美日韩成人在线观看 | 高清在线一区二区三区亚洲综合 | 国产亚洲欧美另类一区二区三区 | 久热最新视频 | 特级毛片免费视频 | 色中文字幕在线 | 久久九九有精品国产56 | 天天摸天天操天天干 | 亚洲欧美日韩国产综合 | 久色tv| 一二区| 久久99热只有视精品6国产 | 亚欧精品一区二区三区 | 欧美a毛片| 中文字幕日韩专区 | bt 另类 专区 欧美 制服 | 亚洲一区二区三 | 欧美成人怡红院在线观看 | 香港aa三级久久三级老师 | 欧美日韩一区二区高清免费视频 | 美日韩视频| 在线看一级片 | 久久精品资源站 | 日韩va | 亚洲热热久久九九精品 | 成人国产mv免费视频 | 亚洲国产成人在线视频 | 日本一级大黄毛片一级 | 美女视频国产 | 爱操tv | 欧美成人精品久久精品 |