欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java的socket請求和響應方式

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

java的socket請求和響應

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

public class demo {
    public static void main(String[] args) throws Exception{
        // 監(jiān)聽指定的端口
        int port = 55533;
        ServerSocket server = new ServerSocket(port);
        // server將一直等待連接的到來
        System.out.println("server將一直等待連接的到來");
        Socket socket = server.accept();
        // 建立好連接后,從socket中獲取輸入流,并建立緩沖區(qū)進行讀取
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len;
        StringBuilder sb = new StringBuilder();
        //只有當客戶端關閉它的輸出流的時候,服務端才能取得結尾的-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)建一個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>";
        // 與服務端建立連接
        Socket socket = new Socket(serverIP, port);
        //設置超時時間
        socket.setSoTimeout(timeOut);
        // 建立連接后獲得輸出流
        OutputStream outputStream = socket.getOutputStream();
        socket.getOutputStream().write(data.getBytes("UTF-8"));
        //通過shutdownOutput高速服務器已經(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("收到響應報文: " + sb);
        inputStream.close();
        outputStream.close();
        socket.close();
    }
}

首先運行server端,然后再運行client端

這個時候看控制的打印

先看server端的控制臺,這時收到了clietn端發(fā)來的信息

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

這樣,一個socket的請求就結束了,這么的demo中的代碼可以直接復用,只需將ip,port還有超時時間換了即可

總結

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

相關文章

  • SpringSecurity動態(tài)加載用戶角色權限實現(xiàn)登錄及鑒權功能

    SpringSecurity動態(tài)加載用戶角色權限實現(xiàn)登錄及鑒權功能

    這篇文章主要介紹了SpringSecurity動態(tài)加載用戶角色權限實現(xiàn)登錄及鑒權功能,很多朋友感覺這個功能很難,今天小編通過實例代碼給大家講解,需要的朋友可以參考下
    2019-11-11
  • Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能示例

    Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能示例

    這篇文章主要介紹了Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能,涉及java針對圖片的讀取、屬性修改等相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • 詳解SpringMVC常用注解功能及屬性

    詳解SpringMVC常用注解功能及屬性

    這篇文章主要介紹了詳解SpringMVC注解功能及屬性,文中通過詳細的示例代碼作了簡要的分析,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • Java深入學習圖形用戶界面GUI之創(chuàng)建窗體

    Java深入學習圖形用戶界面GUI之創(chuàng)建窗體

    圖形編程中,窗口是一個重要的概念,窗口其實是一個矩形框,應用程序可以使用其從而達到輸出結果和接受用戶輸入的效果,學習了GUI就讓我們用它來創(chuàng)建一個窗體
    2022-05-05
  • MyBatis動態(tài)SQL表達式詳解

    MyBatis動態(tài)SQL表達式詳解

    動態(tài)SQL可以省略很多拼接SQL的步驟,使用類似于JSTL方式,下面這篇文章主要給大家介紹了關于Mybatis動態(tài)SQL特性的相關資料,文字通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Centos中安裝jdk案例講解

    Centos中安裝jdk案例講解

    這篇文章主要介紹了Centos中安裝jdk案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Java操作xls替換文本或圖片的功能實現(xiàn)

    Java操作xls替換文本或圖片的功能實現(xiàn)

    這篇文章主要給大家介紹了關于Java操作xls替換文本或圖片功能實現(xiàn)的相關資料,文中通過示例代碼講解了文件上傳、文件處理和Excel文件生成,需要的朋友可以參考下
    2024-12-12
  • JAVA多線程之方法 JOIN詳解及實例代碼

    JAVA多線程之方法 JOIN詳解及實例代碼

    這篇文章主要介紹了JAVA多線程之方法 JOIN詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • intellij idea的快速配置使用詳細教程

    intellij idea的快速配置使用詳細教程

    這篇文章主要介紹了intellij idea的快速配置使用詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 分享幾個寫簡潔java代碼的小技巧

    分享幾個寫簡潔java代碼的小技巧

    成為一個優(yōu)秀的Java程序員,有著良好的代碼編寫習慣是必不可少的,下面這篇文章主要給大家介紹了關于寫java代碼的小技巧,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02

最新評論