Java_網(wǎng)絡(luò)通信

網(wǎng)絡(luò)編程概述

計(jì)算機(jī)網(wǎng)絡(luò)

指將地理位置不同的具有獨(dú)立功能的多臺(tái)計(jì)算機(jī)及其外部設(shè)備,通過(guò)通信線路連接起來(lái),在網(wǎng)絡(luò)操作系統(tǒng),網(wǎng)絡(luò)管理軟件及網(wǎng)絡(luò)通信協(xié)議的管理和協(xié)調(diào)下,實(shí)現(xiàn)資源共享和信息傳遞的計(jì)算機(jī)系統(tǒng).

網(wǎng)絡(luò)編程

就是用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)互連的不同計(jì)算機(jī)上運(yùn)行的程序間可以進(jìn)行數(shù)據(jù)交換.

網(wǎng)絡(luò)模型

OSI參考模型

開(kāi)放式通信系統(tǒng)互聯(lián)參考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是國(guó)際標(biāo)準(zhǔn)化組織(ISO)提出的一個(gè)試圖使各種計(jì)算機(jī)在世界范圍內(nèi)連為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架,簡(jiǎn)稱OSI.

網(wǎng)絡(luò)模型七層概述
1.PNG
2.PNG
3.PNG
TCP/IP參考模型

TCP/IP(又稱TCP/IP協(xié)議簇)是一組用于實(shí)現(xiàn)網(wǎng)絡(luò)互連的通信協(xié)議,其名稱來(lái)源該協(xié)議簇中兩個(gè)重要的協(xié)議(IP協(xié)議和TCP協(xié)議)

圖片.png

該模型的流層圖為上圖左邊是七層但這是在理論基礎(chǔ)上,在實(shí)際運(yùn)行中是右圖四層

兩種模型協(xié)議對(duì)照表
圖片.png

網(wǎng)絡(luò)通信要素

IP地址
  * 網(wǎng)絡(luò)上主機(jī)設(shè)備的唯一標(biāo)識(shí).
  *  IP地址 = 網(wǎng)絡(luò)號(hào)碼+主機(jī)地址.
  * host的標(biāo)識(shí)
      -ipv4:32位地址,以點(diǎn)分十進(jìn)制表示  例如:192.168.0.1.
      -ipv6:128位地址,以:分隔8個(gè)16進(jìn)制數(shù)  例如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
 -本地回環(huán)地址
      -127.0.0.1,主機(jī)名localhost.
 -缺點(diǎn):
     -  不容易記憶
          - IP地址對(duì)應(yīng)一個(gè)名字,叫域名.
          - 域名系統(tǒng)叫DNS,IP和域名之間映射的數(shù)據(jù)庫(kù)
     -  ip告罄
         - ipv6解決這個(gè)問(wèn)題.
端口號(hào)(定位程序)
  • 用于標(biāo)示進(jìn)程的邏輯地址,不用進(jìn)程的標(biāo)識(shí).
  • 每個(gè)Host與網(wǎng)絡(luò)數(shù)據(jù)交流的出口.
  • 用于標(biāo)記進(jìn)程的邏輯地址,不同進(jìn)程的標(biāo)識(shí).
  • 有效端口:0~65535 系統(tǒng)保留端口:0~1024
傳輸協(xié)議(用什么樣的方法進(jìn)行交互)
- 通訊的規(guī)則.
- 網(wǎng)絡(luò)通訊的規(guī)則
   - 尋址
   - 建立連接
   - 釋放連接
   - 流量控制和緩沖區(qū)管理
   - 多路復(fù)用
   - 崩潰恢復(fù)
  • 常見(jiàn)傳輸協(xié)議
    • TCP
    • UDP
    • FTP
數(shù)據(jù)包
  • 單個(gè)消息被劃分為多個(gè)數(shù)據(jù)塊,這些數(shù)據(jù)塊成為包,它包括發(fā)送者和接收者的地址信息.

常見(jiàn)網(wǎng)絡(luò)協(xié)議

TCP協(xié)議

  • TCP(Transmission Control Protocol 傳輸控制協(xié)議)是一種面向連接的.可靠的基于字節(jié)流的傳輸層通信協(xié)議.
    TCP協(xié)議的流程:
  • 建立連接,形成數(shù)據(jù)傳輸?shù)耐ǖ?
  • 在連接中進(jìn)行大數(shù)據(jù)傳輸
  • 通過(guò)三次握手完成連接,是可靠協(xié)議,安全送達(dá).
  • 必須建立連接,效率會(huì)稍低.

![圖片.png](http://upload-images.jianshu.io/upload_images/3722442-
ce8c6562bd908abf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

UDP協(xié)議

  • UDP(User Datagram Protocol )一種無(wú)連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù)

UDP協(xié)議的流程圖

  • 將數(shù)據(jù)及源和目的封裝到數(shù)據(jù)包中
  • 每個(gè)數(shù)據(jù)包的大小限制在64K內(nèi)
  • 因無(wú)連接,是不可靠協(xié)議
  • 不需要建立連接,速度快
TCP/UDP的區(qū)別
4.PNG

HTTP協(xié)議

  • HTTP是基于TCP/IP協(xié)議的應(yīng)用層超文本傳輸協(xié)議,是同于從www服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,由于其簡(jiǎn)捷 快速的方式,使用于分布式超媒體信息系統(tǒng).
    HTTP協(xié)議流程圖
  • 不涉及數(shù)據(jù)包哦(packet)傳輸,主要規(guī)定了客戶端和服務(wù)器之間的通信格式,默認(rèn)使用80端口.
  • HTTP采用了請(qǐng)求/相應(yīng)模式.
  • 請(qǐng)求有三部分組成:請(qǐng)求頭 請(qǐng)求行 請(qǐng)求體.
  • 響應(yīng)三個(gè)部分組成: 響應(yīng)頭 響應(yīng)行 響應(yīng)體.

http://www.cnblogs.com/roverliang/p/5176456.html
http://www.cnblogs.com/ranyonsue/p/5984001.html
想要了解更多的關(guān)于HTTP協(xié)議的內(nèi)容看看上面的博客 個(gè)人覺(jué)得寫得挺好.
File協(xié)議: http://blog.csdn.net/woxueliuyun/article/details/4165610
Ras協(xié)議http://blog.csdn.net/laughing2333/article/details/52292481
cookie和sessionhttp://blog.csdn.net/u012385190/article/details/51957749
想要了解上述內(nèi)容可以看看這些博客.

Socket

概述

  • Socket中文簡(jiǎn)稱"套接字",是一種雙向網(wǎng)絡(luò)通信方式,用于描述IP地址和端口,是一個(gè)通信鏈的句柄,可以用來(lái)實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信.

原理機(jī)制

  • 通信的兩端都有Socket.
  • 網(wǎng)絡(luò)通信其實(shí)就是Socket間的通信.
  • 數(shù)據(jù)在兩個(gè)Socket間通過(guò)IO流傳輸.
    下圖是java中Socket編程


    5.PNG

服務(wù)端

package inter;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

//服務(wù)端
public class Server {
    public static void main(String[] args)throws Exception {
        //創(chuàng)建服務(wù)器ServerSocket
        ServerSocket server = new ServerSocket(8080);
        //接受到客戶端Socket
        System.out.println("服務(wù)器等待接受中.....");
        Socket socket = server.accept();
        System.out.println("服務(wù)器接受到客戶端請(qǐng)求...");
        
        
         //接受客戶端發(fā)送消息
         InputStream in = socket.getInputStream();
         byte[] by = new byte[1024];
         int length = in.read(by);
         String content = new String(by, 0,length);
         System.out.println("客戶端發(fā)送內(nèi)容:"+content);
         
         
        //給客戶端回復(fù)
         OutputStream stream = socket.getOutputStream();
         stream.write("沒(méi)吃呢".getBytes());
        
    }
}

客戶端

package inter;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

import javax.xml.ws.handler.MessageContext.Scope;

//客戶端
public class Client {
   public static void main(String[] args) throws Exception{
     Socket socket = new Socket("localhost", 8080);
     //獲取socket發(fā)送數(shù)據(jù)的流
     OutputStream stream = socket.getOutputStream();
     stream.write("你吃飯了嗎".getBytes());
     
     
     //獲取服務(wù)器返回的數(shù)據(jù)
     InputStream in = socket.getInputStream();
     byte[] by = new byte[1024];
     int length = in.read(by);
     String content = new String(by, 0,length);
     System.out.println("服務(wù)器返回內(nèi)容:"+content);
     
     
}
}

上面的代碼是最簡(jiǎn)單的Socket編程,要理解其中的原理.
在網(wǎng)絡(luò)通信中有很多理論,我們一定要搞明白他們之間的區(qū)別與聯(lián)系,作為計(jì)算機(jī)人士這些問(wèn)題都不懂就打臉了.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纠拔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泛豪,老刑警劉巖稠诲,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诡曙,居然都是意外死亡臀叙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門价卤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)劝萤,“玉大人,你說(shuō)我怎么就攤上這事慎璧〈蚕樱” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵胸私,是天一觀的道長(zhǎng)厌处。 經(jīng)常有香客問(wèn)我,道長(zhǎng)岁疼,這世上最難降的妖魔是什么阔涉? 我笑而不...
    開(kāi)封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上瑰排,老公的妹妹穿的比我還像新娘贯要。我一直安慰自己,他們只是感情好椭住,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布郭毕。 她就那樣靜靜地躺著,像睡著了一般函荣。 火紅的嫁衣襯著肌膚如雪显押。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天傻挂,我揣著相機(jī)與錄音乘碑,去河邊找鬼。 笑死金拒,一個(gè)胖子當(dāng)著我的面吹牛兽肤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绪抛,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼资铡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了幢码?” 一聲冷哼從身側(cè)響起笤休,我...
    開(kāi)封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎症副,沒(méi)想到半個(gè)月后店雅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贞铣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年闹啦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辕坝。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窍奋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酱畅,到底是詐尸還是另有隱情琳袄,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布圣贸,位于F島的核電站挚歧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吁峻。R本人自食惡果不足惜滑负,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一在张、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矮慕,春花似錦帮匾、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至痪寻,卻和暖如春螺句,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背橡类。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工蛇尚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顾画。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓取劫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親研侣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谱邪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 網(wǎng)絡(luò)概念第一天 兩臺(tái)電腦怎么通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)?怎樣才能知道傳輸?shù)氖菙?shù)據(jù)庶诡?誰(shuí)摸過(guò)網(wǎng)線惦银? 看電影,怎么看的灌砖?通過(guò)電流璧函,...
    小吖朱閱讀 1,549評(píng)論 0 1
  • iOS網(wǎng)絡(luò)HTTP、TCP基显、UDP、Socket 知識(shí)總結(jié)OSI 七層模型我們一般使用的網(wǎng)絡(luò)數(shù)據(jù)傳輸由下而上共有七...
    蝸牛也有夢(mèng)想閱讀 2,400評(píng)論 0 3
  • 1. 網(wǎng)絡(luò)編程概述 1.1 計(jì)算機(jī)網(wǎng)絡(luò) 是指將地理位置不同的具有獨(dú)立功能的多臺(tái)計(jì)算機(jī)及其外部設(shè)備善炫,通過(guò)通信線路連接...
    JackChen1024閱讀 1,033評(píng)論 0 3
  • 定義 網(wǎng)絡(luò)協(xié)議為計(jì)算機(jī)網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)交換而建立的規(guī)則撩幽、標(biāo)準(zhǔn)或約定的集合。網(wǎng)絡(luò)協(xié)議主要由三個(gè)要素組成:語(yǔ)義箩艺、語(yǔ)法及時(shí)...
    FlyAndroid閱讀 985評(píng)論 0 10
  • 沒(méi)有你的夢(mèng)窜醉,醒來(lái)總是有些失望,有你的夢(mèng)艺谆,醒來(lái)卻又總是有些失落榨惰。 些許日子沒(méi)有夢(mèng)到你了,不知你還好嗎静汤? 我可以肯定的...
    你看有只螃蟹閱讀 137評(píng)論 0 0