基于Java的Socket編寫的C/S聊天程序?qū)崿F(xiàn)
一個(gè)很久以前寫的能夠支持C/S模式聊天的Demo,利用Java的Socket寫的。
只能聊一句就下線,挺low的。
服務(wù)器端程序Server
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TestTcpServer {
public static void main(String[] args) {
ServerSocket ss = null;
BufferedReader in = null;
try {
ss = new ServerSocket(8888);
System.out.println("服務(wù)器啟動(dòng)");
Socket socket = ss.accept();
System.out.println("連接建立");
System.out.println(socket.getInetAddress().getHostAddress());
//服務(wù)器接收客戶端發(fā)送的數(shù)據(jù)
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String clientContent = in.readLine();
System.out.println("接收客戶端消息: " +clientContent);
} catch (IOException e) {
e.printStackTrace();
}
}
}
客戶端程序Clinet
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class TestTcpClient {
public static void main(String[] args) {
Socket socket = null;
BufferedWriter out = null;
//客戶端發(fā)送數(shù)據(jù),服務(wù)器端接收
try {
socket = new Socket("127.0.0.1",8888);
System.out.println("與服務(wù)器連接了");
Scanner sc = new Scanner(System.in);
String content = sc.nextLine();
out = new BufferedWriter((new OutputStreamWriter(socket.getOutputStream())));
out.write(content);
out.flush();
sc.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
運(yùn)行樣例
注意要先起S端,否則:

好啦,先起S端:

然后S端就在等待,它“說(shuō)話”也沒(méi)人理它:

接著起C端:

S端也會(huì)有響應(yīng):

然后C端發(fā)消息:

S端收到消息,就雙雙Over了:

到此這篇關(guān)于基于Java的Socket編寫的C/S聊天程序?qū)崿F(xiàn)的文章就介紹到這了,更多相關(guān)Java Socket C/S聊天內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java單線程程序?qū)崿F(xiàn)實(shí)現(xiàn)簡(jiǎn)單聊天功能
- JAVA Netty實(shí)現(xiàn)聊天室+私聊功能的示例代碼
- java基于netty NIO的簡(jiǎn)單聊天室的實(shí)現(xiàn)
- 基于Java的Socket多客戶端Client-Server聊天程序的實(shí)現(xiàn)
- Java使用TCP實(shí)現(xiàn)在線聊天的示例代碼
- 基于java socket實(shí)現(xiàn) 聊天小程序
- Java NIO實(shí)戰(zhàn)之聊天室功能詳解
- Java SE實(shí)現(xiàn)多人聊天室功能
- java基于C/S結(jié)構(gòu)實(shí)現(xiàn)多線程聊天室
- java基于C/S模式實(shí)現(xiàn)聊天程序(服務(wù)器)
- java基于C/S模式實(shí)現(xiàn)聊天程序(客戶端)
- java使用MulticastSocket實(shí)現(xiàn)基于廣播的多人聊天室
- Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng)
相關(guān)文章
使用Springboot實(shí)現(xiàn)OAuth服務(wù)的示例詳解
OAuth(Open Authorization)是一個(gè)開(kāi)放標(biāo)準(zhǔn),用于授權(quán)第三方應(yīng)用程序訪問(wèn)用戶資源,而不需要共享用戶憑證。本文主要介紹了如何使用Springboot實(shí)現(xiàn)一個(gè)OAuth服務(wù),需要的可以參考一下2023-05-05
SpringBoot部署到Linux讀取resources下的文件及遇到的坑
本文主要給大家介紹SpringBoot部署到Linux讀取resources下的文件,在平時(shí)業(yè)務(wù)開(kāi)發(fā)過(guò)程中,很多朋友在獲取到文件內(nèi)容亂碼或者文件讀取不到的問(wèn)題,今天給大家分享小編遇到的坑及處理方案,感興趣的朋友跟隨小編一起看看吧2021-06-06
SpringBoot集成Kafka的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot集成Kafka的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
Java中@JSONField和@JsonProperty注解的用法及區(qū)別詳解
@JsonProperty和@JSONField注解都是為了解決obj轉(zhuǎn)json字符串的時(shí)候,將java bean的屬性名替換成目標(biāo)屬性名,下面這篇文章主要給大家介紹了關(guān)于Java中@JSONField和@JsonProperty注解的用法及區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-06-06
Java中@ConfigurationProperties實(shí)現(xiàn)自定義配置綁定問(wèn)題分析
這篇文章主要介紹了@ConfigurationProperties實(shí)現(xiàn)自定義配置綁定問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
Springboot集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的步驟詳解
這篇文章主要介紹了Springboot集成Spring Security實(shí)現(xiàn)JWT認(rèn)證的步驟詳解,幫助大家更好的理解和使用springboot,感興趣的朋友可以了解下2021-02-02

