基于Java的Socket編寫的C/S聊天程序?qū)崿F(xiàn)
一個很久以前寫的能夠支持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ù)器啟動");
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();
}
}
}
}
運行樣例
注意要先起S端,否則:

好啦,先起S端:

然后S端就在等待,它“說話”也沒人理它:

接著起C端:

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

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

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

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

