Java聊天室之實(shí)現(xiàn)運(yùn)行服務(wù)器與等待客戶(hù)端連接
一、題目描述
題目實(shí)現(xiàn):運(yùn)行服務(wù)器程序,等待客戶(hù)端程序連接。
二、解題思路
首先需要在服務(wù)器中建立服務(wù)器套接字,并等待客戶(hù)程序的連接。
創(chuàng)建一個(gè)類(lèi):ServerSocketFrame,繼承JFrame
通過(guò)ServerSocket類(lèi)創(chuàng)建綁定到指定端口的服務(wù)器套接字對(duì)象。然后調(diào)用ServerSocket類(lèi)的accept()方法監(jiān)聽(tīng)客戶(hù)端的連接。
實(shí)例化Socket對(duì)象
server = new ServerSocket(9527); // 可指定端口
三、代碼詳解
ServerSocketFrame
package com.xiaoxuzhu;
import java.awt.BorderLayout;
import java.net.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
/**
* Description: 服務(wù)器中建立服務(wù)器套接字,并等待客戶(hù)程序的連接。
*
* @author xiaoxuzhu
* @version 1.0
*
* <pre>
* 修改記錄:
* 修改后版本 修改人 修改日期 修改內(nèi)容
* 2022/5/29.1 xiaoxuzhu 2022/5/29 Create
* </pre>
* @date 2022/5/29
*/
public class ServerSocketFrame extends JFrame {
private JTextArea ta_info;
private ServerSocket server; // 聲明ServerSocket對(duì)象
private Socket socket; // 聲明Socket對(duì)象socket
public void getServer() {
try {
server = new ServerSocket(9527); // 實(shí)例化Socket對(duì)象
ta_info.append("服務(wù)器套接字已經(jīng)創(chuàng)建成功\n"); // 輸出信息
while (true) { // 如果套接字是連接狀態(tài)
ta_info.append("等待客戶(hù)機(jī)的連接......\n"); // 輸出信息
socket = server.accept(); // 監(jiān)聽(tīng)客戶(hù)端連接
ta_info.append("連接成功......\n");//有客戶(hù)端連接上,才算監(jiān)聽(tīng)成功,會(huì)輸入這一段
}
} catch (Exception e) {
e.printStackTrace(); // 輸出異常信息
}
}
public static void main(String[] args) { // 主方法
ServerSocketFrame frame = new ServerSocketFrame(); // 創(chuàng)建本類(lèi)對(duì)象
frame.setVisible(true);
frame.getServer(); // 調(diào)用方法
}
public ServerSocketFrame() {
super();
setTitle("建立服務(wù)器套接字");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 260, 167);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);
ta_info = new JTextArea();
scrollPane.setViewportView(ta_info);
}
}實(shí)現(xiàn)效果

到此這篇關(guān)于Java聊天室之實(shí)現(xiàn)運(yùn)行服務(wù)器與等待客戶(hù)端連接的文章就介紹到這了,更多相關(guān)Java聊天室內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
聊聊spring @Transactional 事務(wù)無(wú)法使用的可能原因
這篇文章主要介紹了spring @Transactional 事務(wù)無(wú)法使用的可能原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java數(shù)據(jù)結(jié)構(gòu)之棧的詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之棧簡(jiǎn)單操作的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助2021-09-09
SpringMVC中使用@PathVariable綁定路由中的數(shù)組的方法
這篇文章主要介紹了SpringMVC中使用@PathVariable綁定路由中的數(shù)組的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
springboot實(shí)現(xiàn)在工具類(lèi)(util)中調(diào)用注入service層方法
這篇文章主要介紹了springboot實(shí)現(xiàn)在工具類(lèi)(util)中調(diào)用注入service層方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java在線打開(kāi)word文檔并強(qiáng)制留痕的方法
在本篇文章里小編給讀者們分享的是關(guān)于Java在線打開(kāi)word文檔并強(qiáng)制留痕的方法,對(duì)此有需要的朋友們可以學(xué)習(xí)下。2020-01-01
學(xué)習(xí)java編程后可以走哪些職業(yè)道路
在本篇文章里給大家介紹了關(guān)于學(xué)習(xí)java后的職業(yè)道路,以及需要學(xué)習(xí)的相關(guān)知識(shí)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2022-11-11
java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息詳解
根據(jù)IP自動(dòng)獲取當(dāng)?shù)氐奶鞖忸A(yù)報(bào)信息這個(gè)功能大家應(yīng)該都遇到過(guò),天氣預(yù)報(bào)信息用途非常廣泛,篇文章主要給大家介紹了關(guān)于java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息的相關(guān)資料,需要的朋友可以參考下2021-08-08
Spring Security 實(shí)現(xiàn)短信驗(yàn)證碼登錄功能
這篇文章主要介紹了Spring Security 實(shí)現(xiàn)短信驗(yàn)證碼登錄功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05

