java簡單聊天程式碼
客戶端:
package com.dada.handlefile;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
/**
* @author dada
* 客戶端
*/
public class Client {
public static void main(String[] args) throws Exception, IOException {
Socket sClient = new Socket("localhost", 9999);
InputStream is = sClient.getInputStream();
DataInputStream dis = new DataInputStream(is);
OutputStream os = sClient.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
new ClientReader(dis).start();
new ClientWriter(dos).start();
}
}
/**
* @author dada
* 客戶端讀取類
*/
class ClientReader extends Thread {
DataInputStream dis;
public ClientReader(DataInputStream dis) {
super();
this.dis = dis;
}
@Override
public void run() {
String info;
while (true) {
try {
info = dis.readUTF();
System.out.println("對方說: " + info);
if (info.equals("bye")) {
System.out.println("對方下線");
System.exit(0);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* @author dada
* 客戶端寫出類
*/
class ClientWriter extends Thread {
DataOutputStream dos;
public ClientWriter(DataOutputStream dos) {
this.dos = dos;
}
@Override
public void run() {
String info;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
while (true) {
try {
info = br.readLine();
dos.writeUTF(info);
if (info.equals("bye")) {
System.out.println("自己下線");
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
伺服器端:
package com.dada.handlefile;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author dada
* 伺服器端
*/
public class Server {
public static void main(String[] args) throws Exception {
//例項化一個伺服器端的socket例項
ServerSocket ss = new ServerSocket(9999);
Socket sServer = ss.accept();
//獲取輸入流
InputStream is = sServer.getInputStream();
//封裝DataInputStream是因為它可以以UTF的格式讀取資料
DataInputStream dis = new DataInputStream(is);
//獲取輸出流
OutputStream os = sServer.getOutputStream();
//封裝DataInputStream是因為它可以以UTF的格式讀取資料
DataOutputStream dos = new DataOutputStream(os);
new ServerReader(dis).start();
new ServerWriter(dos).start();
}
}
/**
* @author Administrator
* 這個類主要是用來提供從伺服器端的流讀取資料的
*/
class ServerReader extends Thread {
DataInputStream dis;
public ServerReader(DataInputStream dis) {
this.dis = dis;
}
@Override
public void run() {
String info;
while (true) {
try {
info = dis.readUTF();
System.out.println("對方說: " + info);
if (info.equals("bye")) {
System.out.println("對方下線: ");
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* @author Administrator
* 這個方法主要是提供從伺服器端向外寫資料服務的
*/
class ServerWriter extends Thread {
DataOutputStream dos;
public ServerWriter(DataOutputStream dos) {
super();
this.dos = dos;
}
@Override
public void run() {
String info;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
while (true) {
try {
info = br.readLine();
dos.writeUTF(info);
if (info.equals("bye")) {
System.out.println("自動退出!");
System.exit(0);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
相關文章
- 用Java程式碼實現一個簡單的聊天室功能Java
- Java用UDP實現簡單聊天JavaUDP
- 編寫簡單的Java程式碼:HelloWoridJava
- Python使用Socket寫一個簡單聊天程式Python
- 用Java構建一個簡單的WebSocket聊天室JavaWeb
- 三種提升Java程式碼效能的簡單技巧 - levelupJava
- 簡單寫個聊天室
- Netty版本 簡單聊天室Netty
- 使用簡單的Java程式碼實現酒店管理系統Java
- C語言簡單程式碼程式C語言
- 重構 JAVA 聊天室 —— CS 模式的簡單架構實現Java模式架構
- 簡單的程式碼生成工具
- Java 8 ArrayList 原始碼簡單分析Java原始碼
- Flutter 極簡 App 程式碼簡單解讀FlutterAPP
- C# 簡單的聊天大廳功能及原始碼(socket通訊)C#原始碼
- Java Netty伺服器客戶端聊天示範程式碼JavaNetty伺服器客戶端
- SignalR簡版web聊天室(demo簡單演示篇)SignalRWeb
- 聊天室原始碼開發,如何簡單的實現掃碼登入功能?原始碼
- 簡單的Java二維碼應用Java
- 題解1249:簡單編碼 (Java描述)Java
- 直播系統原始碼,極光IM簡單的聊天介面全手動原始碼
- 使用簡單的Java程式碼在SAP C4C裡建立銷售訂單Java
- Laravel + Vue + Swoole 實現的簡單 Web 聊天LaravelVueWeb
- WebRTC:一個視訊聊天的簡單例子Web單例
- vs2010編寫的簡單socket聊天
- 實現簡單的`Blazor`低程式碼Blazor
- JavaScript簡單計算器程式碼分析JavaScript
- SVG程式碼構成簡單介紹SVG
- 聊天平臺原始碼,簡單使用 禁止滑動和設定滑動方向原始碼
- 聊天室原始碼開發中防抖節流的簡單實現原始碼
- JAVA基礎之程式碼簡潔之道Java
- 分享一個簡單的聊天室專案
- 簡單的 swoole 聊天室 (持續更新、完善)
- 用Java構建一個簡單的WebSocket聊天專案之新增HTTP介面排程JavaWebHTTP
- 簡單演示Excel中VBA程式碼的使用Excel
- 幽默:最簡單的SpringBoot微服務程式碼Spring Boot微服務
- 最簡單的mybatis自動程式碼生成MyBatis
- 淡入淡出效果簡單程式碼例項
- 使用Java語言寫的一個簡單的撲克牌發牌程式碼Java