Java聊天室之解決連接超時問題
一、題目描述
題目實現(xiàn):在進(jìn)行網(wǎng)絡(luò)編程時,由于進(jìn)行網(wǎng)絡(luò)連接是比較消耗資源的,因此,可以對連接的等待時間進(jìn)行設(shè)置,如果在規(guī)定的時間沒有進(jìn)行連接,則進(jìn)行其他的處理。運行程序,等待10秒鐘后,將彈出消息框提示連接超時。
二、解題思路
創(chuàng)建一個類:ConnectionTimeoutSetFrame,繼承JFrame類
寫一個getserver()方法,創(chuàng)建服務(wù)ServerSocket和設(shè)置等待超時時間。
原理是通過ServerSocket的實例對象,調(diào)用setSoTimeout()設(shè)置超時時間。
三、代碼詳解
ConnectionTimeoutSetFrame
package com.xiaoxuzhu; import java.awt.BorderLayout; import java.io.*; import java.net.*; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * Description: * * @author xiaoxuzhu * @version 1.0 * * <pre> * 修改記錄: * 修改后版本 修改人 修改日期 修改內(nèi)容 * 2022/5/31.1 xiaoxuzhu 2022/5/31 Create * </pre> * @date 2022/5/31 */ public class ConnectionTimeoutSetFrame extends JFrame { private JTextArea ta_info; private ServerSocket server; // 聲明ServerSocket對象 public void getserver() { try { server = new ServerSocket(9527); // 實例化Socket對象 server.setSoTimeout(10000);// 設(shè)置連接超時時間為10秒 ta_info.append("服務(wù)器套接字已經(jīng)創(chuàng)建成功\n"); // 輸出信息 while (true) { // 如果套接字是連接狀態(tài) ta_info.append("等待客戶機的連接......\n"); // 輸出信息 server.accept();// 等待客戶機連接 } } catch (SocketTimeoutException e) { ta_info.append("連接超時......"); JOptionPane.showMessageDialog(null, "連接超時......"); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { // 主方法 ConnectionTimeoutSetFrame frame = new ConnectionTimeoutSetFrame(); // 創(chuàng)建本類對象 frame.setVisible(true); frame.getserver(); // 調(diào)用方法 } public ConnectionTimeoutSetFrame() { super(); setTitle("設(shè)置等待連接的超時時間"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 336, 257); final JScrollPane scrollPane = new JScrollPane(); getContentPane().add(scrollPane, BorderLayout.CENTER); ta_info = new JTextArea(); scrollPane.setViewportView(ta_info); } }
10秒后,會提示連接超時。
到此這篇關(guān)于Java聊天室之解決連接超時問題的文章就介紹到這了,更多相關(guān)Java聊天室內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot項目打包如何將依賴的jar包輸出到指定目錄
公司要對springboot項目依賴的jar包進(jìn)行升級,但是遇到一個問題,項目打包之后,沒辦法看到他里面依賴的jar包,版本到底是不是升上去了,沒辦法看到,下面通過本文給大家分享Springboot項目打包如何將依賴的jar包輸出到指定目錄,感興趣的朋友一起看看吧2024-05-05intelij?idea?2023創(chuàng)建java?web項目的完整步驟
這篇文章主要給大家介紹了關(guān)于intelij?idea?2023創(chuàng)建java?web項目的完整步驟,該教學(xué)主要針對各位剛剛接觸javaweb開發(fā)的小伙伴,各位學(xué)習(xí)java的朋友也難免會經(jīng)歷這個階段,需要的朋友可以參考下2023-10-10Java嵌套for循環(huán)的幾種常見優(yōu)化方案
這篇文章主要給大家介紹了關(guān)于Java嵌套for循環(huán)的幾種常見優(yōu)化,在Java中優(yōu)化嵌套for循環(huán)可以通過以下幾種方式來提高性能和效率,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07JDK?version和class?file?version(Class編譯版本號)對應(yīng)關(guān)系解讀
這篇文章主要介紹了JDK?version和class?file?version(Class編譯版本號)對應(yīng)關(guān)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Java使用jacob將微軟office中word、excel、ppt轉(zhuǎn)成pdf
這篇文章主要為大家詳細(xì)介紹了Java使用jacob將微軟office中word、excel、ppt轉(zhuǎn)成pdf,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之棧和隊列
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之棧和隊列,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有一定的幫助,需要的朋友可以參考下2021-05-05Java并發(fā) CompletableFuture異步編程的實現(xiàn)
這篇文章主要介紹了Java并發(fā) CompletableFuture異步編程的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01