第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Java Socket應(yīng)用---通信是這樣練成的

難度初級(jí)
時(shí)長 2小時(shí) 0分
學(xué)習(xí)人數(shù)
綜合評(píng)分9.77
496人評(píng)價(jià) 查看評(píng)價(jià)
9.9 內(nèi)容實(shí)用
9.8 簡潔易懂
9.6 邏輯清晰
  • socket編程傳遞文件

    查看全部
    0 采集 收起 來源:Socket 總結(jié)

    2018-05-23

  • 使用TCP通信傳輸對(duì)象

    查看全部
    0 采集 收起 來源:Socket 總結(jié)

    2018-05-23

  • 直接關(guān)閉socket,即流也一起關(guān)閉。

    查看全部
    0 采集 收起 來源:Socket 總結(jié)

    2018-05-23

  • 多線程通信的優(yōu)先級(jí)問題

    查看全部
    0 采集 收起 來源:Socket 總結(jié)

    2018-05-23

  • 客戶端實(shí)現(xiàn)步驟

    /*UDP客戶端*/
    public?class?UDPClient?{
    ?public?static?void?main(String[]?args)?{
    ??try?{
    ???//向服務(wù)器端發(fā)送數(shù)據(jù)
    ???//1.定義服務(wù)器的地址、端口號(hào)、數(shù)據(jù)
    ???InetAddress?address?=?InetAddress.getByName("localhost");
    ???int?port?=?8800;
    ???byte[]?data?=?"用戶名:admin;密碼:123".getBytes();
    ???//2.創(chuàng)建數(shù)據(jù)報(bào),包含發(fā)送的數(shù)據(jù)信息
    ???DatagramPacket?packet?=?new?DatagramPacket(data,?data.length,?address,?port);
    ???//3.創(chuàng)建DatagramSocket對(duì)象
    ???DatagramSocket?socket?=?new?DatagramSocket();
    ???//4.向服務(wù)器端發(fā)送數(shù)據(jù)報(bào)
    ???socket.send(packet);
    ???
    ???//接收服務(wù)器端響應(yīng)的數(shù)據(jù)
    ???//1.創(chuàng)建數(shù)據(jù)報(bào),用于接收服務(wù)器端響應(yīng)的數(shù)據(jù)
    ???byte[]?data2?=?new?byte[1024];
    ???DatagramPacket?packet2?=?new?DatagramPacket(data2,?data2.length);
    ???//2.接收服務(wù)器響應(yīng)的數(shù)據(jù)
    ???socket.receive(packet2);
    ???//3.讀取數(shù)據(jù)
    ???String?reply?=?new?String(data2,0,packet2.getLength());
    ???System.out.println("我是客戶端,服務(wù)器端說:"+reply);
    ???//4.關(guān)閉資源
    ???socket.close();
    ??}?catch?(UnknownHostException?e)?{
    ???e.printStackTrace();
    ??}?catch?(SocketException?e)?{
    ???e.printStackTrace();
    ??}?catch?(IOException?e)?{
    ???e.printStackTrace();
    ??}
    ?}
    }


    查看全部
  • 服務(wù)器端實(shí)現(xiàn)步驟

    /*UDP服務(wù)器端,實(shí)現(xiàn)基于UDP的用戶登陸*/
    public?class?UDPServer?{
    ?public?static?void?main(String[]?args)?{
    ??try?{
    ???//接收客戶端發(fā)送的數(shù)據(jù)
    ???//1.創(chuàng)建服務(wù)器端DatagramScoket,指定端口
    ???DatagramSocket?socket?=?new?DatagramSocket(8800);
    ???//2.創(chuàng)建數(shù)據(jù)報(bào),用于接收客戶端發(fā)送的數(shù)據(jù)
    ???byte[]?data?=?new?byte[1024];//創(chuàng)建字節(jié)數(shù)組,指定接受的數(shù)據(jù)報(bào)的大小
    ???DatagramPacket?packet?=?new?DatagramPacket(data,?data.length);
    ???//3.接受客戶端發(fā)送的數(shù)據(jù)
    ???System.out.println("服務(wù)器端已經(jīng)啟動(dòng),等待客戶端發(fā)送數(shù)據(jù)");
    ???socket.receive(packet);//此方法在接收到數(shù)據(jù)報(bào)之前會(huì)一直阻塞
    ???//4.讀取數(shù)據(jù)
    ???String?info?=?new?String(data,0,packet.getLength());
    ???System.out.println("我是服務(wù)器,客戶端說:"+info);
    ???
    ???//向客戶端響應(yīng)數(shù)據(jù)
    ???//1.定義客戶端的地址、端口號(hào)、數(shù)據(jù)
    ???InetAddress?address?=?packet.getAddress();
    ???int?port?=?packet.getPort();
    ???byte[]?data2?=?"歡迎你!".getBytes();
    ???//2.創(chuàng)建數(shù)據(jù)報(bào),包含響應(yīng)的數(shù)據(jù)信息
    ???DatagramPacket?packet2?=?new?DatagramPacket(data2,?data2.length,address,port);
    ???//3.響應(yīng)客戶端
    ???socket.send(packet2);
    ???//4.關(guān)閉資源
    ???socket.close();
    ??}?catch?(SocketException?e)?{
    ???e.printStackTrace();
    ??}?catch?(IOException?e)?{
    ???e.printStackTrace();
    ??}
    ?}
    }
    查看全部
  • UDP編程
    ? 1、UDP協(xié)議(用戶數(shù)據(jù)報(bào)協(xié)議)是無連接、不可靠、無序的。
    ? 2、UDP協(xié)議以數(shù)據(jù)報(bào)作為數(shù)據(jù)傳輸?shù)妮d體。
    ? 3、使用UDP進(jìn)行數(shù)據(jù)傳輸時(shí),首先需要將要傳輸?shù)臄?shù)據(jù)定義成數(shù)據(jù)報(bào)(Datagram),在數(shù)據(jù)報(bào)中指明所要達(dá)到的Socket(主機(jī)地址和端口號(hào)),然后在將數(shù)據(jù)報(bào)發(fā)生出去。
    ? 4、相關(guān)操作類:DatagramPacket:表示數(shù)據(jù)報(bào)包
    ???????????????? DatagramSocket:進(jìn)行端到端通信的類

    DatagramPacket類構(gòu)造方法:
    ? 1、DatagramPacket(byte[] buf,int length)//接受長度為length的數(shù)據(jù)包
    ? 2、DatagramPacket(byte[] buf,int length,InetAddress address,int port)//將指定長度的字節(jié)發(fā)生到指定主機(jī)的指定端口

    DatagramSocket類
    ? 1、構(gòu)造方法:DatagramSocket();
    ?????????????? DatagramSocket(int port,InetAddress laddr);
    ? 2、close();//關(guān)閉DatagramSocket
    ? 3、getInetAddress();//獲取地址
    ? 4、getPort();//獲取端口號(hào)
    ? 5、send(DatagramPacket p);//從此套接字發(fā)送數(shù)據(jù)包
    ???? recrive(DatagramPacket p);//從此套接字接收數(shù)據(jù)包

    查看全部
    0 采集 收起 來源: DatagramPacket

    2018-05-23

  • UDP編程操作

    查看全部
    0 采集 收起 來源: DatagramPacket

    2018-05-23

  • 主線程負(fù)責(zé)創(chuàng)建socket
    * 一個(gè)線程用來讀取
    * 一個(gè)線程用來寫入,用兩個(gè)內(nèi)部類
    * 要用多線程實(shí)現(xiàn),send線程和recived線程同時(shí)訪問buff數(shù)據(jù)區(qū)。
    * 發(fā)送完成后notify,接收線程。接收線程自身wait
    * 接收的說,我先wait一下,可能緩存中還沒有數(shù)據(jù),我會(huì)拿到空值的。
    * 發(fā)送的說Ok,我先寫,寫完了我notifyall你。我就一直鎖著。變成并行處理了。
    每個(gè)客戶端連接服務(wù)端都會(huì)產(chǎn)生一個(gè)新的socket。

    socket關(guān)閉條件時(shí)

    一種寫法:if(socket!=null)socket.close();

    另一種寫法:if(!socket.isClosed())socket.close();

    查看全部
  • 多線程服務(wù)器操作

    查看全部
  • 服務(wù)器向客戶端進(jìn)行響應(yīng)

    //獲取輸出流,響應(yīng)客戶端的請(qǐng)求
    OutputStream?os=socket.getOutputStream();
    PrintWriter?pw=new?PrintWriter(os);//包裝為打印流
    pw.write("歡迎您!");
    pw.flush();//調(diào)用flush()方法刷新緩沖輸出
    //關(guān)閉資源
    pw.close();
    os.close();
    socket.close();

    --------------------------------
    客戶端接收服務(wù)器發(fā)送的消息

    InputStream?is=socket.getInputStream();
    BufferedReader?br=new?BufferedReader(new?InputStreamReader(is));
    String?line;
    while((line=br.readerline()!=null)
    {
    ????System.out.println("我是客戶端,服務(wù)器說:"+line);
    }
    is.close();
    br.close();
    socket.close();
    查看全部
  • /*TCP服務(wù)器端*/
    public?class?Server?{?
    ????public?static?void?main(String[]?args)?{??
    ????????try?{???
    ????????????//1.創(chuàng)建一個(gè)服務(wù)器端Socket,即ServerSocket,指定綁定的端口,并監(jiān)聽此端口???
    ????????????ServerSocket?serverSocket?=?new?ServerSocket(8888);???
    ????????????//2.調(diào)用accept()方法開始監(jiān)聽,等待客戶端的連接???
    ????????????System.out.println("服務(wù)器即將啟動(dòng),等待客戶端的連接");???
    ????????????Socket?socket?=?serverSocket.accept();???
    ????????????//3.獲取輸入流,并讀取客戶端信息???
    ????????????InputStream?is?=?socket.getInputStream();//字節(jié)輸入流???
    ????????????InputStreamReader?isr?=?new?InputStreamReader(is);//將字節(jié)流包裝為字符流
    ????????????BufferedReader?br?=?new?BufferedReader(isr);//為輸入流添加緩沖???
    ????????????String?info?=?null;???
    ????????????while((info=br.readLine())!=null){//循環(huán)讀取客戶端的信息????
    ????????????????System.out.println("我是服務(wù)器,客戶端說:"+info);???
    ????????????}???
    ????????????socket.shutdownInput();//關(guān)閉輸入流??????
    ????????????//4.關(guān)閉資源???
    ????????????br.close();???
    ????????????isr.close();???
    ????????????is.close();???
    ????????????socket.close();???
    ????????????serverSocket.close();??
    ????????}?catch?(IOException?e)?{???
    ????????????e.printStackTrace();??
    ????????}???
    ????}
    }
    /*TCP客戶端*/
    public?class?Client?{?
    ????public?static?void?main(String[]?args)?{??
    ????????try?{???
    ????????????//1.創(chuàng)建客戶端Socket,指定服務(wù)器地址和端口???
    ????????????Socket?socket?=?new?Socket("localhost",8888);???
    ????????????//2.獲取輸出流,向服務(wù)器端發(fā)送信息???
    ????????????OutputStream?os?=?socket.getOutputStream();//字節(jié)輸出流???
    ????????????PrintWriter?pw?=?new?PrintWriter(os);//將輸出流包裝成打印流???
    ????????????pw.write("用戶名:admin;密碼:123");???
    ????????????pw.flush();???
    ????????????socket.shutdownOutput();//關(guān)閉輸出流??????
    ????????????//3.關(guān)閉資源???
    ????????????pw.close();???
    ????????????os.close();???
    ????????????socket.close();??
    ?????????}?catch?(UnknownHostException?e)?{???
    ????????????e.printStackTrace();??
    ?????????}?catch?(IOException?e)?{???
    ?????????????e.printStackTrace();??
    ?????????}?
    ????}
    }
    查看全部
  • 服務(wù)端:
    1、創(chuàng)建ServerSocket對(duì)象,綁定監(jiān)聽端口
    2、通過accept()方法監(jiān)聽客戶端請(qǐng)求
    3、連接建立后,通過輸入流讀取客戶端發(fā)送的請(qǐng)求信息
    4、通過輸出流向客戶端發(fā)送響應(yīng)信息
    5、關(guān)閉相關(guān)資源

    客戶端:
    1、創(chuàng)建Socket對(duì)象,指明需要連接的服務(wù)器的地址和端口號(hào)
    2、連接建立后,通過輸出流向服務(wù)器端發(fā)送請(qǐng)求信息
    3、通過輸入流獲取服務(wù)器相應(yīng)的信息
    4、關(guān)閉相關(guān)資源。

    查看全部
  • 客戶端的操作

    查看全部
  • 服務(wù)器端的操作

    查看全部

舉報(bào)

0/150
提交
取消
課程須知
本課程是 Java 開發(fā)課程的高級(jí)課程,需要對(duì) Java 中的面向?qū)ο?、IO、多線程,以及網(wǎng)絡(luò)相關(guān)知識(shí)有一定的基礎(chǔ)
老師告訴你能學(xué)到什么?
1、網(wǎng)絡(luò)相關(guān)的基礎(chǔ)知識(shí) 2、Java 中網(wǎng)絡(luò)相關(guān) API 的應(yīng)用 3、實(shí)現(xiàn)基于 TCP 的 Socket 編程 4、實(shí)現(xiàn)基于 UDP 的 Socket 編程

微信掃碼,參與3人拼團(tuán)

微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對(duì)慕課網(wǎng)的支持!