溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java Socket傳輸怎么完成自己的網(wǎng)絡(luò)任務(wù)

發(fā)布時(shí)間:2021-07-28 09:09:17 來源:億速云 閱讀:148 作者:chen 欄目:編程語(yǔ)言

這篇文章主要講解了“Java Socket傳輸怎么完成自己的網(wǎng)絡(luò)任務(wù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java Socket傳輸怎么完成自己的網(wǎng)絡(luò)任務(wù)”吧!

Java Socket傳輸?shù)奈覀兪褂玫臅r(shí)候有許多都是在網(wǎng)上實(shí)現(xiàn)的,我們的目的實(shí)現(xiàn)了,并且birthday沒有被串行化;如果我們不講Address實(shí)現(xiàn)Serializable,會(huì)發(fā)生異常:java.io.WriteAbortedException: writing aborted

Java Socket傳輸IO流

我們都知道Java Socket傳輸?shù)腎O是一個(gè)極其龐大的類家族,也正是運(yùn)用了裝飾模式的經(jīng)典場(chǎng)景;可見,我們一部分管道是直接連接了數(shù)據(jù)源,或者直接輸出到數(shù)據(jù)源,他們能夠直接讀數(shù)據(jù)或者寫數(shù)據(jù),我們上一節(jié)中使用的FileoutputStream和FileInputStream就是這樣的管道,他們的數(shù)據(jù)源就是指存在文件系統(tǒng)中的文件;下一部分我們要求使用的ByteArrayInputStream和ByteArrayOutputStream也是這樣的管道,不過他的數(shù)據(jù)源是存在內(nèi)存中的數(shù)組;他能夠通過write把數(shù)據(jù),字符串等等寫進(jìn)這塊數(shù)組區(qū)域,并且能夠得到一個(gè)完整的字節(jié)數(shù)組。

而另外的一部分則不能直接與數(shù)據(jù)源發(fā)生讀寫交互,他主要用于裝飾上一部分的管道,給這個(gè)管道賦予更加便捷的功能,諸如BufferedReader等等的,主要是提供了緩存,就好比給上一部分管道中間提供了一個(gè)“蓄水池”,這個(gè)“蓄水池”等到“水流”到了一定的程度的時(shí)候,才會(huì)一次性的流進(jìn)或者流出等等,諸如ObjectInputStream和ObjectOutputStream,他們能夠直接讀寫一個(gè)Object,但是這個(gè)Object被寫到了哪里,是內(nèi)存中的字節(jié)數(shù)組還是文件文件的文件中,而必須委托給其他管道實(shí)現(xiàn);

在網(wǎng)絡(luò)中傳輸對(duì)象

在網(wǎng)絡(luò)中的兩臺(tái)機(jī)器中傳輸對(duì)象,前提首先是基于同一個(gè)平臺(tái),這是序列化的基礎(chǔ),所以這里主要有兩種做法:

采用Java Socket傳輸?shù)男蛄谢瘷C(jī)制,將對(duì)象“壓扁”成二進(jìn)制字節(jié),將二進(jìn)制字節(jié)在網(wǎng)絡(luò)中傳輸;

自定義協(xié)議,將對(duì)象用字符串描述出來,將字符串用二進(jìn)制表示,在網(wǎng)絡(luò)中傳輸,在另外一邊用相反的策略解析這個(gè)字符串,重新構(gòu)造業(yè)務(wù)對(duì)象,這個(gè)方法能夠在異構(gòu)平臺(tái)中進(jìn)行傳輸而不變形,但是需要額外的編寫“壓扁”和“充氣”的代碼。

感謝各位的閱讀,以上就是“Java Socket傳輸怎么完成自己的網(wǎng)絡(luò)任務(wù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Java Socket傳輸怎么完成自己的網(wǎng)絡(luò)任務(wù)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI