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

基于用戶數據報協議的Java Socket數據通信

2012-11-15 06:46:12茹志鵑
中國科技信息 2012年9期
關鍵詞:進程程序

茹志鵑

正德職業技術學院,江蘇 南京 211106

基于用戶數據報協議的Java Socket數據通信

茹志鵑

正德職業技術學院,江蘇 南京 211106

數據通信是網絡的主要應用之一,隨著網絡的快速發展,大多程序設計語言都開發了實現數據通信的應用程序接口,Java語言也不例外。Java語言,因平臺無關和多線程的特性,被廣泛應用于Web開發中,其豐富的類庫中提供了Socket套接字,應用程序可通過套接字向網絡發出請求或者應答網絡請求,非常方便的實現網絡間的數據通信。基于用戶數據報通信協議或者傳輸控制協議,利用Java語言的面向對象、多線程、可視化程序開發以及Socket套接字技術,可以非常簡單的實現多個客戶端之間的網絡數據通信。

Socket;UDP;數據報;多線程

Java作為一種程序設計語言,簡單、面向對象、不依賴于機器的結構、具有可移植性、安全性、并且提供了并發的機制、具有很高的性能,最大限度地利用了網絡,還提供了豐富的類庫,使程序設計者可以很方便地開發自己的系統。Java語言的眾多特點中,最特別的就是與平臺無關和多線程了,也因此被廣泛用于Web開發中。java.net包中,提供了網絡編程所需要各個類,通過這些類,可方便的開發網絡間數據通信程序。

1.開發技術介紹

實現網絡間的數據通信,必須基于傳輸層的兩個服務質量不同的協議——TCP和UDP,Java類庫中提供了DatagramSocket和DatagramPacket兩個類來實現基于UDP協議的數據通信,同時也提供了Socket和ServerSocket兩個類來實現基于TCP協議的數據通信,下面主要介紹基于UDP協議的數據通信。

1.1 UDP協議

UDP(User Datagram Protocol,用戶數據報協議)協議是OSI參考模型中一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,是一個簡單的面向數據報的傳輸層協議,傳送數據前并不與對方建立連接,在傳輸數據前,發送方和接收方相互交換信息使雙方同步,對接收到的數據包也不發送確認信號,發送端不知道數據是否被正確接收,也不會重發數據,因此具有較好的實時性和工作效率。

1.2 SOCKET

所謂socket通常也稱作“套接字”,是網絡編程中的一個接口,用于描述IP地址和端口,是一個通信鏈的句柄,應用程序通過“套接字”向網絡發出請求或者應答網絡請求。

J a v a語言的U D P通信中,使用DatagramSocket類來創建收、發數據報的Socket對象。與TCP通信不同,它不存在“連接”的概念,取而代之的是一個數據報包DatagramPacket對象,這個數據報包本身包含IP地址、端口號和數據內容,據此可以知道發送方和目的地。

使用DatagramSocket的構造方法public DatagramSocket(int port)throws SocketException來創建數據報套接字,并綁定到指定的端口上。對于數據報的接收,主要使用DatagramPacket 類的public DatagramPacket(byte buf[],int length)方法構造DatagramPacket對象,來接收長度為length的數據報包,發送數據報使用public DatagramPacket(byte[] buf, int length, InetAddress address, int port)構造數據報包,用來將長度為length的包發送到指定主機上的指定端口號。

2.程序介紹

程序的設計過程中,界面制作可使用Java開發的可視化編程工具,創建窗口后,添加輸出信息的文本區域和輸入信息的文本框兩個控件,并且對回車事件和窗口關閉事件進行處理,這里不再介紹。下面主要介紹使用DatagramSocket和DatagramPacket兩個類編寫數據通信的代碼和為提高程序的運行速度所采用的多線程機制。

2.1 創建接收和發送程序

導入網絡編程所需要的包java.net,就可以開始編寫發送數據功能的方法代碼2-1和接收數據功能的方法代碼2-2。

代碼2-2 接收數據報代碼

接收方ds綁定端口號8000,并創建數據報dp,等待接收發送方發送的數據;發送方ds無需綁定固定端口號,但必須在創建數據報dp時,指定要發送到電腦的IP地址和端口號8000,通過代碼2-1和2-2就可以實現簡單的基于UDP協議的數據通信。

2.2 多線程技術

一般來說,當運行一個應用程序的時候,就啟動了一個進程,有時會啟動多個進程。啟動進程的時候,操作系統會為進程分配資源,其中最主要的資源是內存空間。在進程中,有些程序流程塊是可以亂序執行的,并且這個代碼塊可以同時被多次執行,這樣的代碼塊就是線程體。線程是進程中亂序執行的代碼流程,當多個線程同時運行的時候,這樣的執行模式稱為并發執行,多線程的目的是為了最大限度的利用CPU資源。

Java編寫程序都運行在Java虛擬機(JVM)中,在JVM的內部,程序的多任務是通過線程來實現的。每個正在系統上運行的程序都是一個進程,每個進程包含一到多個線程,進程也可能是整個程序或者是部分程序的動態執行。線程是一組指令的集合,或者是程序的特殊段,它可以在程序里獨立執行,也可以把它理解為代碼運行的上下文。所以線程基本上是輕量級的進程,它負責在單個程序里執行多任務,通常由操作系統負責多個線程的調度和執行。Java語言中用多線程來同時為多個客戶提供服務,這是提高服務器的并發性能的最常用手段。

在網絡編程中,使用多線程可以把占據長時間的等待接收聊天信息的程序任務放到后臺去處理,使程序的運行速度加快,提高CPU的利用率,在等待接收聊天信息的同時能夠發送聊天信息給對方。

Java中用擴展Thread類或者實現Runnable接口兩種方法來實現多線程,將發送數據端代碼2-1和接收數據端代碼2-2寫在實現多線程的run方法中即可。run方法是多線程程序的一個約定,所有的多線程代碼都在run方法里面。Thread類實際上也是實現了Runnable接口的類。在啟動多線程的時候,需要先通過Thread類的構造方法Thread(Runnable target) 構造出對象,然后調用Thread對象的start()方法來運行多線程代碼。實際上所有的多線程代碼都是通過運行Thread的start()方法來運行的。因此,不管是擴展Thread類還是實現Runnable接口來實現多線程,最終還是通過Thread的對象來控制線程的。

3.結語

本文介紹的DatagramSocket只允許數據報發往一個目的地,還可以使用java.net包中的類MulticastSocket。在發送數據報時使用MulticastSocket類,可以將數據報以廣播方式發送到指定端口的所有客戶。

網絡特別是計算機網絡的發展,越來越深刻的改變著人們生活的方方面面。當需要實時快速時,人們僅僅只需要簡單的通訊,這時可以使用UDP協議來實現數據通信的功能。但是由于UDP協議的無連接,若需要安全可靠的數據通信時,就需要選擇有連接的TCP協議來進行數據通信了。

總之,無論使用任何語言,任何方式實現數據通信,都必須遵循固定的步驟進行操作,在熟悉了這些步驟以后,可以根據需要進行邏輯上的處理,但還是必須以固定的步驟為前提。其實,實現基礎的數據通信本身不難,也不需要很多的基礎網絡知識,編程的基礎功能都已經由應用程序接口實現,只需要按照固定的步驟進行即可,例如使用Java提供的Socket接口和多線程技術,可方便高效的開發基于UDP或TCP的通信軟件,實現網絡間數據通信。

[1]孫衛琴 編著. JAVA網絡編程精解[M].北京:電子工業出版社, 2007.2

[2]劉永華.于春花編著.Java網絡編程技術[M].北京:清華大學出版社,2008.5

10.3969/j.issn.1001-8972.2012.09.054

茹志鵑、本科、講師、計算機科學與技術。

猜你喜歡
進程程序
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 国产性生交xxxxx免费| 欧美午夜视频在线| 狠狠五月天中文字幕| 久久无码免费束人妻| 538国产视频| 中文字幕欧美日韩高清| 国产午夜人做人免费视频| 欧美视频在线不卡| 国产玖玖玖精品视频| 亚洲精品在线观看91| 亚洲区视频在线观看| 亚洲日韩高清无码| 久久综合色播五月男人的天堂| 精品视频一区二区三区在线播| 制服丝袜一区| 91小视频版在线观看www| 婷婷激情亚洲| 99re这里只有国产中文精品国产精品| 不卡视频国产| 亚洲a级在线观看| 日韩成人在线网站| AV不卡无码免费一区二区三区| 亚洲视频免| 毛片免费观看视频| 欧美日韩在线成人| 五月激情综合网| 麻豆精品国产自产在线| 国产成人av一区二区三区| 精品一区国产精品| 久久9966精品国产免费| 欧美激情一区二区三区成人| 97国内精品久久久久不卡| 波多野结衣中文字幕一区二区| 欧美视频在线第一页| 最新国产精品鲁鲁免费视频| 日韩欧美中文字幕在线精品| 日韩福利在线视频| 波多野结衣一二三| 精品视频91| 国产精品爽爽va在线无码观看| 色婷婷色丁香| 国产va视频| 理论片一区| 亚洲精品成人片在线观看| 国产成人久视频免费| 精品成人一区二区| 国产午夜精品鲁丝片| 久久成人18免费| 91精品伊人久久大香线蕉| 亚洲成网777777国产精品| 久久99国产精品成人欧美| 国产乱子精品一区二区在线观看| 国产www网站| 91亚瑟视频| 国产成年女人特黄特色毛片免| 国产精品19p| 女人18毛片久久| 福利片91| 亚洲V日韩V无码一区二区| 国产主播在线一区| 日韩一区二区在线电影| 亚洲欧美不卡中文字幕| 午夜精品区| 日韩 欧美 小说 综合网 另类| 亚洲福利视频网址| 欧美成人a∨视频免费观看| 色老二精品视频在线观看| 国产精品自拍露脸视频| 日韩欧美国产精品| 亚洲欧美成aⅴ人在线观看| 亚洲天堂日韩av电影| 熟女日韩精品2区| 女高中生自慰污污网站| 国产成人夜色91| 国产资源免费观看| 亚洲无码久久久久| 欧洲免费精品视频在线| 日韩黄色在线| 亚洲欧美精品一中文字幕| 免费国产黄线在线观看| 拍国产真实乱人偷精品| 色综合a怡红院怡红院首页|