最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java的socket請(qǐng)求和響應(yīng)方式

 更新時(shí)間:2023年09月28日 10:01:20   作者:zhao_854093140  
這篇文章主要介紹了java的socket請(qǐng)求和響應(yīng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java的socket請(qǐng)求和響應(yīng)

創(chuàng)建一個(gè)socket的server端

public class demo {
    public static void main(String[] args) throws Exception{
        // 監(jiān)聽指定的端口
        int port = 55533;
        ServerSocket server = new ServerSocket(port);
        // server將一直等待連接的到來(lái)
        System.out.println("server將一直等待連接的到來(lái)");
        Socket socket = server.accept();
        // 建立好連接后,從socket中獲取輸入流,并建立緩沖區(qū)進(jìn)行讀取
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len;
        StringBuilder sb = new StringBuilder();
        //只有當(dāng)客戶端關(guān)閉它的輸出流的時(shí)候,服務(wù)端才能取得結(jié)尾的-1
        while ((len = inputStream.read(bytes)) != -1) {
            // 注意指定編碼格式,發(fā)送方和接收方一定要統(tǒng)一,建議使用UTF-8
            sb.append(new String(bytes, 0, len, "UTF-8"));
        }
        System.out.println("get message from client: " + sb);
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("客戶端,我收到信息了".getBytes("UTF-8"));
        inputStream.close();
        outputStream.close();
        socket.close();
        server.close();
    }
}

再創(chuàng)建一個(gè)socket的client端

@Slf4j
public class demo1 {
    public static void main(String[] args) throws Exception {
        String serverIP = "127.0.0.1";
        int port = 55533;
        int timeOut = 10000;
        String data = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
                "<SERVICE>\n" +
                "    <prcscd>mbr128</prcscd>\n" +
                "    <servtp>MBL</servtp>\n" +
                "    <datasq>CNT2018092500000000001</datasq>\n" +
                "    <servsq>20180206000000000001</servsq>\n" +
                "    <userid>0170901</userid>\n" +
                "    <brchno>017001</brchno>\n" +
                "    <servdt>20180925</servdt>\n" +
                "    <servti>165125</servti>\n" +
                "    <ipaddr>10.28.25.30</ipaddr>\n" +
                "    <mac>D4-BE-D9-A2-39-EF</mac>\n" +
                "    <acctno>100633778400041</acctno>\n" +
                "</SERVICE>";
        // 與服務(wù)端建立連接
        Socket socket = new Socket(serverIP, port);
        //設(shè)置超時(shí)時(shí)間
        socket.setSoTimeout(timeOut);
        // 建立連接后獲得輸出流
        OutputStream outputStream = socket.getOutputStream();
        socket.getOutputStream().write(data.getBytes("UTF-8"));
        //通過(guò)shutdownOutput高速服務(wù)器已經(jīng)發(fā)送完數(shù)據(jù),后續(xù)只能接受數(shù)據(jù)
        socket.shutdownOutput();
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len;
        StringBuilder sb = new StringBuilder();
        while ((len = inputStream.read(bytes)) != -1) {
            //注意指定編碼格式,發(fā)送方和接收方一定要統(tǒng)一,建議使用UTF-8
            sb.append(new String(bytes, 0, len,"UTF-8"));
        }
        System.out.println("收到響應(yīng)報(bào)文: " + sb);
        inputStream.close();
        outputStream.close();
        socket.close();
    }
}

首先運(yùn)行server端,然后再運(yùn)行client端

這個(gè)時(shí)候看控制的打印

先看server端的控制臺(tái),這時(shí)收到了clietn端發(fā)來(lái)的信息

然后再看client端,看看server的返回信息是否有接收到

這樣,一個(gè)socket的請(qǐng)求就結(jié)束了,這么的demo中的代碼可以直接復(fù)用,只需將ip,port還有超時(shí)時(shí)間換了即可

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn)

    java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn)

    本文主要介紹了java啟動(dòng)jar包設(shè)置啟動(dòng)參數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 深入探究如何使用Java編寫MapReduce程序

    深入探究如何使用Java編寫MapReduce程序

    MapReduce是一種用于處理大規(guī)模數(shù)據(jù)集的并行編程模型,其特點(diǎn)高效性和可擴(kuò)展性,在本文中,我們將深入了解MapReduce,并使用Java編寫一個(gè)簡(jiǎn)單的MapReduce程序,需要的朋友可以參考下
    2023-05-05
  • java 中歸并排序算法詳解

    java 中歸并排序算法詳解

    這篇文章主要介紹了java 中歸并排序算法詳解的相關(guān)資料,歸并排序算法又稱為合并排序算法,是一種時(shí)間復(fù)雜度為O(N logN)的排序算法,因而其在平常生活工作中應(yīng)用非常廣泛,需要的朋友可以參考下
    2017-09-09
  • java實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)為zip壓縮文件

    java實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)為zip壓縮文件

    這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)為zip壓縮文件,并且解壓后為json文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 解決ThreadLocal獲取不到值大坑

    解決ThreadLocal獲取不到值大坑

    這篇文章主要介紹了解決ThreadLocal獲取不到值大坑
    2023-05-05
  • Java中的移位運(yùn)算符使用及原理詳解

    Java中的移位運(yùn)算符使用及原理詳解

    在 Java 中,移位運(yùn)算符用于對(duì)二進(jìn)制數(shù)進(jìn)行位移操作,它們可以將一個(gè)數(shù)的所有位向左或向右移動(dòng)指定的位數(shù),本文小編將給大家詳細(xì)的介紹一下Java移位運(yùn)算符,需要的朋友可以參考下
    2023-09-09
  • 關(guān)于Java企業(yè)級(jí)項(xiàng)目開發(fā)思想

    關(guān)于Java企業(yè)級(jí)項(xiàng)目開發(fā)思想

    Java企業(yè)級(jí)項(xiàng)目開發(fā)思想。偶遇,讀有所得,遂分享給大家,本文不涉及案例,只談思想和理念,需要的朋友可以參考。
    2017-09-09
  • springboot實(shí)現(xiàn)過(guò)濾器的示例代碼

    springboot實(shí)現(xiàn)過(guò)濾器的示例代碼

    JavaWeb開發(fā)中,過(guò)濾器Filter是三大組件之一,主要用于請(qǐng)求攔截和響應(yīng)處理,如權(quán)限校驗(yàn)、日志記錄、請(qǐng)求過(guò)濾等,本文就來(lái)介紹一下springboot實(shí)現(xiàn)過(guò)濾器的示例代碼,感興趣的可以了解一下
    2024-10-10
  • java-制表符\t的使用說(shuō)明

    java-制表符\t的使用說(shuō)明

    這篇文章主要介紹了java-制表符\t的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Spring Security的持久化用戶和授權(quán)實(shí)現(xiàn)方式

    Spring Security的持久化用戶和授權(quán)實(shí)現(xiàn)方式

    文章介紹了如何使用JdbcUserDetailsManager實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀取用戶,并展示了如何配置SpringSecurity進(jìn)行授權(quán)管理,通過(guò)創(chuàng)建數(shù)據(jù)庫(kù)表、配置數(shù)據(jù)庫(kù)連接和修改SecurityConfig,實(shí)現(xiàn)了用戶權(quán)限的控制
    2025-02-02

最新評(píng)論

乐陵市| 清水县| 建德市| 淳安县| 赞皇县| 得荣县| 巴南区| 和平区| 昌乐县| 彰化县| 江油市| 阳城县| 元江| 厦门市| 九龙县| 锡林郭勒盟| 六安市| 视频| 秦皇岛市| 门源| 龙江县| 资兴市| 象山县| 花垣县| 越西县| 临邑县| 舟曲县| 布拖县| 潼南县| 南和县| 得荣县| 收藏| 仙桃市| 中西区| 兰州市| 靖西县| 玉树县| 台中市| 平果县| 闽侯县| 勐海县|