91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Socket客服端第二次傳送信息時服務端收不到消息怎么解決

發布時間:2021-11-24 16:59:18 來源:億速云 閱讀:654 作者:iii 欄目:大數據

這篇文章主要講解了“Java Socket客服端第二次傳送信息時服務端收不到消息怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java Socket客服端第二次傳送信息時服務端收不到消息怎么解決”吧!

小問題一:

   在客戶端使用如下代碼時候,服務端接收不到客戶端信息。

PrintWriter pw = new PrintWriter(new BufferedOutputStream(os));pw.print("this is a clent:"+i);pw.flush();

此時,我把代碼改成如下,服務端可以看到客戶端發送的信息。

os = socket.getOutputStream();PrintWriter pw = new PrintWriter(new BufferedOutputStream(os));pw.print("this is a clent:"+i+"\n");// 或者換成 pw.println("this is a clent:"+i);pw.flush();

這兩段代碼的區別是,一個代碼沒有加換行符,而另一個代碼加了換行符。

小問題二:

在服務端開啟后,客戶端執行完創建Socket代碼之后,將不會在進行代碼的連接檢查,這樣帶來了一個后果,當代碼執行如下代碼之后,關閉服務端的連接,并不能出現Connection refused (Connection refused)提示。

socket = new Socket("127.0.0.1", 10000);

下面貼出完整代碼:

客戶端:

public static void main(String[] args) {
        Socket socket = null;        OutputStream os = null;        try {int i=0;            socket = new Socket("127.0.0.1", 10000);            while (true) {
                i++;                os = socket.getOutputStream();                PrintWriter pw = new PrintWriter(new BufferedOutputStream(os));                Thread.sleep(1000L);                pw.print("this is a clent:"+i+"\n");                pw.flush();                //接收服務器傳輸過來的信息                InputStream is = socket.getInputStream();                BufferedReader br = new BufferedReader(new InputStreamReader(new BufferedInputStream(is)));                System.out.println("服務器傳輸信息:"/* + br.readLine()*/+ ";服務器信息:" + socket.getInetAddress().getHostName());            }

        } catch (IOException | InterruptedException e) {
            e.printStackTrace();        } finally {try {
                os.close();                socket.close();            } catch (IOException e) {
                e.printStackTrace();            }

        }

    }
}

服務端:

public static void main(String[] args) {try {
        ServerSocket serverSocket = new ServerSocket(10000);        Socket socket = null;        InputStream inputStream = null;        while (true) {
            socket = serverSocket.accept();            inputStream = socket.getInputStream();            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));            System.out.println("服務端收到客戶端消息:" + bufferedReader.readLine() + ";客戶端信息" + socket.getInetAddress().getHostAddress() + ":" + socket.getPort());            //反饋消息            OutputStream os = socket.getOutputStream();            PrintWriter pw = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(os)));            pw.println("收到客戶端傳輸數據,服務器信息" + socket.getLocalSocketAddress().toString());            pw.flush();        }

    } catch (IOException e) {
        e.printStackTrace();    }
}

感謝各位的閱讀,以上就是“Java Socket客服端第二次傳送信息時服務端收不到消息怎么解決”的內容了,經過本文的學習后,相信大家對Java Socket客服端第二次傳送信息時服務端收不到消息怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇礼县| 剑阁县| 玉屏| 道孚县| 乐山市| 长寿区| 略阳县| 灵川县| 嘉禾县| 嘉义市| 苍梧县| 迭部县| 进贤县| 大竹县| 中超| 泰安市| 西安市| 杭锦旗| 安义县| 祁东县| 常德市| 贵港市| 宜城市| 隆尧县| 新晃| 子长县| 元朗区| 阿拉尔市| 沙雅县| 纳雍县| 株洲县| 玉田县| 德江县| 揭东县| 固镇县| 西吉县| 遂溪县| 滨州市| 丽江市| 盘山县| 金川县|