注:这个聊天不可以输空格。后续补充吧
,线程写在了一起,可读性有点低、、、
//服务端Server
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动");
Socket socket = serverSocket.accept();
System.out.println("连接成功");
new RecieveServer(socket).start();//启动一个发送线程
new SendClient(socket).start();//启动一个接收线程
}catch (Exception e){
e.printStackTrace();
}
}
}
class RecieveServer extends Thread{
private Socket socket;
public RecieveServer(Socket socket){
this.socket=socket;
}
public void run(){
try {
InputStream inputStream;
inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);//借用高级输入流实现接收功能
while(true) {
String string = null;
try {
string = dataInputStream.readUTF();//读取内容
System.out.println("接受的内容有:"+string);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//客户端Client
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
try{
Socket socket = new Socket("127.0.0.1", 8888);//连接服务器
new RecieveServer(socket).start();//启动发送线程
new SendClient(socket).start();//启动接收线程
System.out.println("连接成功服务器");
}catch (Exception e){
e.printStackTrace();
}
}
}
class SendClient extends Thread{//发送线程暂时放到了客户端里
private Socket socket;
public SendClient(Socket socket){
this.socket=socket;
}
public void run(){
OutputStream outputStream= null;
try {
outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream= new DataOutputStream(outputStream);//借用高级输出流 实现输出功能
while (true){
Scanner scanner= new Scanner(System.in);
System.out.print("发送内容为:");
String string = scanner.next();
dataOutputStream.writeUTF(string);//发送内容
}
} catch (IOException e) {
e.printStackTrace();
}
}
}