999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java Socket網絡編程的基礎性應用研究

2017-11-15 02:43:16姚曉芳舒小松
無線互聯科技 2017年22期
關鍵詞:方法

姚曉芳,舒小松

(銅仁學院 大數據學院,貴州 銅仁 554300)

基于Java Socket網絡編程的基礎性應用研究

姚曉芳,舒小松

(銅仁學院 大數據學院,貴州 銅仁 554300)

Java Socket(套接字)是Java網絡編程的核心內容之一,使用Java編寫的相關應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求.Socket是兩臺主機之間的一個連接,通過這個連接可以實現主機到服務器之間的數據傳遞與數據交流,具有數據傳輸時間短、效率高等特點.文章通過一個詳細的案例介紹了Socket在Java平臺中的基礎性應用,并進行了相關的分析.

Java Socket;網絡編程;基礎性應用

Java是一門面向對象編程的開發語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有安全、跨平臺、面向對象、簡單、適用于網絡等顯著特點[1].Java由JDK,JRE,JVM以及第三方JAR包組成.

1 Java Socket簡介

Java Socket通常也稱作"套接字",用于描述IP地址和端口,是一個通信鏈的句柄[2].網絡上兩個程序通過一個雙向的通信連接實現數據的交換,這個雙向鏈路的一端為一個Socket.Socket通常用來實現客戶方和服務方的連接.Socket主要由一個IP地址和一個端口號來確定.在Java中Socket編程主要指基于TCP/IP協議的網絡編程.好比打電話需要有電話或手機,套接字就是手機.主動打的一方,就叫主叫方,對方就是被叫方.那么主叫方需要一個Socket,被叫方需要一個Server Socket.被叫方有多個號.他得選中一個號工作,這叫綁定.在套接字上,是綁定到端口.被叫方需要開機才能接聽電話,那他就得先偵聽.Server Socket的accept()就是開始偵聽,并有來電時接聽.本文通過基于Java Socket網絡編程的基礎性應用研究,編寫一個客戶端/服務器程序.

2 Java Socket網絡編程的應用與研究

2.1 前期的基本操作

安裝好JDK以及Eclipse軟件.進入Eclipse,編寫相關Java源程序.

2.2 創建客戶端類ClientSocket

2.2.1 開啟客戶端Socket

(1)需要創建一個host.

String host1 = "127.0.0.1"

(2)需要創建一個端口.

int port1 = 9999

(3)創建client對象.

Socket client1 = new Socket(host,port)

上述代碼中,host即是客戶端需要連接的機器,port就是服務器用來監聽的端口.要注意選擇端口的范圍,在系統中,小于1 024的端口都基本上被占用了.這些端口為一些常用的服務所使用,比如電子郵件,FTP,HTTP,TELNET等.編寫服務器端的代碼時候,需要選擇大于1 023的端口.

2.2.2 寫入數據

從客戶端的socket對象中得到OutputStream對象,然后寫入數據后.很類似文件I/O的處理代碼.

(1)通過字符流接收服務器端讀入的流.

Writer writer1 = new OutputStreamwriter(client.getOutputstream())

(2)讀入數據.

Writer.write("Hello Java From Client")

(3)刷新、關閉.

writer1.flush()

writer1.close()

client1.close()

注意用Socket類的時候需要加入拋出異常,在讀寫數據完成后,需要對IO對象進行關閉,以保證資源的正確釋放.Writer類是一個寫入字符流的抽象類.這種累的子類必須實現的方法是通過write(char [],int,int)方法讀取和flush()刷新,close()方法關閉;OutputStreamWriter:是Writer的子類,將輸出的字符流變為字節流,即:將一個字符流的輸出對象變為字節流的輸出對象;getOutputStream方法獲得輸出流和輸入流,輸出流就是向這個Socket通道寫數據,輸入流就是從里面讀數據.輸入和輸出是相對于端來說的,Socket可以簡單看作端和端之間的連接,從某一端發出數據到Socket,就是out,某一端從Socket讀取數據,就是in.其客戶端代碼如圖1所示.

2.3 創建服務器端類ServerClient

2.3.1 開啟服務器端Socket

(1)需要創建一個端口,該端口與客戶端一致.

int port1 = 9999

(2)創建server對象

ServerSocket server1 = new ServerSocket(port)

(3)監聽

Socket socket1 = server.accept()

上面代碼的作用是為了創建一個服務器端的Socket,然后調用accept方法監聽獲取客戶端的請求Socket.這個accept是一種阻塞形式的IO和監聽端口方法.如果有數據過來會喚醒此方法,內部用的wait(),notity().

圖1 客戶端代碼

2.3.2 讀取數據

Reader reader1 = new InputStreamReader(socket.getInputStream())

2.3.3 輸出數據

System.out.println("Receive from client message"+builder)

最后仍然需要正確關閉IO對象,以確保資源的正確釋放.抽象類Reader讀取字符流的抽象類.這種類的子類必須實現的方法是通過read(char [],int,int)方法讀取和close()方法關閉.然而,大多數子類將覆蓋這里定義的一些方法,以便提供更高的效率、附加功能或兩者一起使用.這里用的是StringBuilder而沒有用StringBuffer,是因為Stringbuilder如果用在字符串緩沖區中,并且能夠被單個顯存使用的時候,它的速度比StringBuffer要快.其服務器端代碼如圖2所示.

3 結語

先在服務器端運行程序,然后在客戶端運行程序將會顯示如圖3所示的效果,表明程序成功.如果在服務器端控制臺輸入數據,將會反饋給客戶端,如圖4-5所示.

圖2 服務器端代碼

圖3 結論

圖4 服務器端輸入數據

圖5 客戶端顯示數據

通過Java Socket網絡編程的基礎性應用與研究,使我們對Java Socket網絡編程有了新的認識,為今后Java Socket網絡編程的學習打下堅實的基礎.

[1]李芝新,楊瑞龍.Java程序設計之網絡編程[M].北京:清華大學出版社,2009.

[2]馬曉敏,肖明,姜遠明,等.Java網絡編程原理與JSP Web開發核心技術[M].北京:中國鐵道出版社,2010.

Study on the basic application of network programming based on Java Socket

Yao Xiaofang, Shu Xiaosong
(Large Data College of Tongren University, Tongren 554300, China)

Java Socket is one of the core elements of Java network programming. Relevant applications program written by Java usually send requests to the network or answer network requests through "Sockets". Socket is a connection between two hosts. Through this connection,data transfer and data exchange between host and server can be realized. It has the characteristics of short data transmission time and high efficiency. This paper introduces the basic application of Socket in Java platform through a detailed case, and carries on the related analysis.

Java Socket; network programming; basic application

姚曉芳(1979- ),女,貴州銅仁人,講師,學士;研究方向:微機原理與接口技術,單片機,數據庫等.

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 欧美69视频在线| 狠狠v日韩v欧美v| 国产综合无码一区二区色蜜蜜| 欧美中出一区二区| 亚洲AV人人澡人人双人| 欧美一区福利| 亚洲AⅤ无码国产精品| 久久青草视频| 91精品国产一区自在线拍| 久热精品免费| 成人精品亚洲| 欧美在线精品怡红院| 欧美成人精品在线| 国产99久久亚洲综合精品西瓜tv| 国产亚洲美日韩AV中文字幕无码成人 | 大学生久久香蕉国产线观看| 免费黄色国产视频| 国产精品任我爽爆在线播放6080 | 国产成人精品一区二区免费看京| 91丝袜美腿高跟国产极品老师| 91人妻在线视频| 亚洲视频免| 国产偷国产偷在线高清| 精品自窥自偷在线看| 国产传媒一区二区三区四区五区| 成人免费网站在线观看| 青草视频免费在线观看| 国产成人精品三级| 四虎亚洲精品| 国产精品视频观看裸模| 青青青视频91在线 | 青青网在线国产| 99久久精品久久久久久婷婷| 久久先锋资源| 欧美中文字幕一区| 欧美曰批视频免费播放免费| 亚洲视频三级| 国产麻豆精品久久一二三| 日韩 欧美 国产 精品 综合| 99久久这里只精品麻豆| 亚洲精品制服丝袜二区| 99视频在线免费| 欧美激情福利| 成人无码一区二区三区视频在线观看| 曰韩免费无码AV一区二区| 久久久久国产一级毛片高清板| 精品一区二区三区波多野结衣 | 亚洲日韩精品无码专区97| 亚洲午夜国产精品无卡| 国产女主播一区| 国产免费看久久久| 激情六月丁香婷婷| 亚洲男人天堂久久| 成人免费午夜视频| 毛片免费在线| 亚洲三级视频在线观看| 婷婷亚洲最大| 波多野结衣第一页| 久久99热66这里只有精品一 | 精品国产免费观看一区| 亚洲视屏在线观看| 日韩久久精品无码aV| 特级欧美视频aaaaaa| 亚洲精品无码专区在线观看| 国产精品网址你懂的| 免费国产在线精品一区| a毛片免费在线观看| 亚洲成人播放| 国产精品主播| 亚洲欧美日韩中文字幕在线一区| 国产日韩欧美在线播放| 国产性爱网站| 国产va欧美va在线观看| 国产高清自拍视频| 成人在线亚洲| 亚洲欧美成aⅴ人在线观看| 午夜a级毛片| 91无码网站| 性激烈欧美三级在线播放| 国产午夜无码片在线观看网站| 538国产视频| 国产人成在线视频|