Android學(xué)習(xí)———服務(wù)器预皇、客戶端侈玄、Scoket網(wǎng)絡(luò)編程

目的

今天的學(xué)習(xí)關(guān)于面對(duì)網(wǎng)絡(luò)而言的。眾所周知吟温。網(wǎng)絡(luò)在如今的大環(huán)境下是不可逆的主流序仙,而網(wǎng)絡(luò)無(wú)外乎服務(wù)器,客戶端鲁豪,數(shù)據(jù)庫(kù)等主要部分潘悼,今天實(shí)現(xiàn)了不同計(jì)算機(jī)的交互,進(jìn)行聊天操作爬橡,使用 Java 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的聊天程序, 實(shí)現(xiàn)服務(wù)器端接收到客戶端發(fā)來的消息, 使用了java.net.socket包. 通過socket 實(shí)現(xiàn) client — server 之間的通訊.治唤。涉及的知識(shí)主要有多線程以及Scoket類使用。話不多說糙申,Start宾添!

運(yùn)用知識(shí)

  • IP地址

  • 客戶端簡(jiǎn)單實(shí)用

  • 多線程實(shí)現(xiàn)對(duì)聊

  • 使用繼承IOException類

過程

  • 學(xué)習(xí)筆記

/**

  • 網(wǎng)絡(luò)編程
  • 在兩臺(tái)不同的計(jì)算機(jī)之間實(shí)現(xiàn)數(shù)據(jù)傳輸
  •  1.qq聊天
    
  •  2.網(wǎng)易app  刷新界面
    
  •  3.打開瀏覽器  網(wǎng)頁(yè)  www.baidu.com
    
  • 客戶端:手機(jī)app 瀏覽器 桌面qq 用戶使用的平臺(tái)
  • 服務(wù)器端:存儲(chǔ)、處理數(shù)據(jù)
  • URL:統(tǒng)一的資源定位
  • www.baidu.com: 域名 表示一臺(tái)網(wǎng)絡(luò)中的電腦
  •             ip地址  唯一標(biāo)識(shí)某一臺(tái)電腦   32位——>4部分  8字節(jié)
    
  •             172.20.10.15<-->www.baidu.com
    
  • DNS服務(wù)器 域名解析
  • IP地址唯一標(biāo)識(shí)一臺(tái)電腦
  • 端口號(hào)唯一標(biāo)識(shí)電腦上正在運(yùn)行的一個(gè)程序
  • 網(wǎng)絡(luò)中數(shù)據(jù)傳輸 Socket類 客戶端 ServerSocket 服務(wù)器端
    */
  • 直接步入主題柜裸,開始寫/demo

要完成這個(gè)demo缕陕,實(shí)現(xiàn)服務(wù)器與客戶端對(duì)話,首先要有客戶端和服務(wù)器疙挺。對(duì)其的要求是扛邑,在其中一方的字符能實(shí)時(shí)顯示在另外一方,同時(shí)可以實(shí)現(xiàn)交互铐然。那么就要有服務(wù)器Server以及客戶端Client

  • 客戶端Client類代碼:
class Client1{
    public static void main(String[] args) throws IOException {
        //連接服務(wù)器 獲取socket
        Socket socket = new Socket("127.0.0.1",8080);

        //創(chuàng)建服務(wù)器端對(duì)應(yīng)的輸入流 用于接收服務(wù)器端發(fā)來的數(shù)據(jù)
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        System.out.println(br.readLine());

        //向服務(wù)器端發(fā)送文件(圖片)
        //1.將文件寫入到內(nèi)存里
        String path = "C:\\Users\\myk的小老弟\\Desktop\\ps素材\\feker.jpg";
        FileInputStream fis = new FileInputStream(path);

        //2.創(chuàng)建字節(jié)流 outputStream
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        byte[] buf = new byte[1024];
        int len = -1;
        while ((len = fis.read(buf)) != -1){
            bos.write(buf,0,len);
        }
        socket.shutdownOutput();
    }
}
  • 服務(wù)器類代碼:
class Server1{
    public static void main(String[] args) throws IOException {
        //創(chuàng)建服務(wù)器端的ServerSoket
        ServerSocket ss = new ServerSocket(8080);

        //監(jiān)聽客戶端連接
        //當(dāng)有客戶端來連接這個(gè)服務(wù)器 就可以得到對(duì)應(yīng)的socket
        //當(dāng)沒有客戶端來連接 服務(wù)器一直在這里等待
        Socket socket = ss.accept();

        //創(chuàng)建客戶端對(duì)應(yīng)的輸出流 用于向這個(gè)客戶端發(fā)送數(shù)據(jù)
        PrintStream ps = new PrintStream(socket.getOutputStream());
        ps.println("連接成功 可以發(fā)數(shù)據(jù)了蔬崩!");

        BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
        String path = "C:\\Users\\myk的小老弟\\Desktop\\雜文檔";
        FileOutputStream fos = new FileOutputStream(path);

        byte[] buf = new byte[1024];
        int len = -1;
        while((len = bis.read(buf)) != -1){
            fos.write(buf,0,len);
        }
    }
}
  • 效果如下

    1.運(yùn)行服務(wù)器:

    2.運(yùn)行客戶端:
    image.png

總結(jié)

具體的話,服務(wù)器和客戶端是分開電腦分別實(shí)現(xiàn)锦爵,只要地址以及端口正確就能實(shí)現(xiàn)交互。多人交互我還沒理清楚奥裸,繼續(xù)加油

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末险掀,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子湾宙,更是在濱河造成了極大的恐慌樟氢,老刑警劉巖冈绊,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異埠啃,居然都是意外死亡死宣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門碴开,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毅该,“玉大人,你說我怎么就攤上這事潦牛】粽疲” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵巴碗,是天一觀的道長(zhǎng)朴爬。 經(jīng)常有香客問我,道長(zhǎng)橡淆,這世上最難降的妖魔是什么召噩? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮逸爵,結(jié)果婚禮上具滴,老公的妹妹穿的比我還像新娘。我一直安慰自己痊银,他們只是感情好抵蚊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溯革,像睡著了一般贞绳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上致稀,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天冈闭,我揣著相機(jī)與錄音,去河邊找鬼抖单。 笑死萎攒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矛绘。 我是一名探鬼主播耍休,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼货矮!你這毒婦竟也來了羊精?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤囚玫,失蹤者是張志新(化名)和其女友劉穎喧锦,沒想到半個(gè)月后读规,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡燃少,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年束亏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阵具。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碍遍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怔昨,到底是詐尸還是另有隱情雀久,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布趁舀,位于F島的核電站赖捌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏矮烹。R本人自食惡果不足惜越庇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奉狈。 院中可真熱鬧卤唉,春花似錦、人聲如沸仁期。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)跛蛋。三九已至熬的,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赊级,已是汗流浹背押框。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留理逊,地道東北人橡伞。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晋被,于是被迫代替她去往敵國(guó)和親兑徘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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

  • 計(jì)算機(jī)網(wǎng)絡(luò)概述 網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸羡洛。 按照計(jì)算機(jī)網(wǎng)絡(luò)的定義挂脑,通過一定...
    蛋炒飯_By閱讀 1,224評(píng)論 0 10
  • 網(wǎng)絡(luò)編程 一.楔子 你現(xiàn)在已經(jīng)學(xué)會(huì)了寫python代碼最域,假如你寫了兩個(gè)python文件a.py和b.py,分別去運(yùn)...
    go以恒閱讀 2,016評(píng)論 0 6
  • 一锈麸、TCP介紹 1.1镀脂、TCP協(xié)議,傳輸控制協(xié)議(英語(yǔ):Transmission Control Protocol...
    IIronMan閱讀 1,084評(píng)論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,097評(píng)論 1 32
  • 1.網(wǎng)絡(luò)編程1.1計(jì)算機(jī)網(wǎng)絡(luò)概述網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸忘伞。按照計(jì)算機(jī)網(wǎng)絡(luò)的...
    任振銘閱讀 426評(píng)論 0 1