import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
/**
@author Administrator
*
*/
public class Client {
private Socket socket;
/**
构造方法,用来初始化客户端
*/
public Client() {
try {
System.out.println("正在连接服务端........");
socket =new Socket("localhost",8088);
System.out.println("已连接服务端");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
客户端开始工作的方法
*/
public void start() {
try {
OutputStream out=socket.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(out,"UTF-8");
BufferedWriter bw=new BufferedWriter(osw);
PrintWriter pw=new PrintWriter(bw,true);
Scanner scan=new Scanner(System.in);
String line;
System.out.println("输入exit即可退出服务器");
while(true) {
line=scan.nextLine();
if("exit".equals(line.toLowerCase())) {
pw.println("exit");
break;
}
pw.flush();
pw.println(line);
}
pw.close();
}catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Client client=new Client();
client.start();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
/**
@author Administrator
*
*/
public class Server {
private ServerSocket server;
/**
}
/**
服务端开始工作的方法
*/
public void start() {
try {
System.out.println("等待客户端连接......");
Socket socket=server.accept();
System.out.println("一个客户端连接了");
InputStream in=socket.getInputStream();
InputStreamReader isr=new InputStreamReader(in,"UTF-8");
BufferedReader br=new BufferedReader(isr);
while(true) {
if("exit".equals(br.readLine())) {
System.out.println("客户端已退出");
break;
}
System.out.println(br.readLine());
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Server server=new Server();
server.start();
}
}
readline是读取一行,你在判断和打印的时候都操作了readline,所以第二次才打印出来。server修改为
String s = br.readLine();
if ("exit".equals(s)) {
System.out.println("客户端已退出");
break;
}
System.out.println(s);
https://blog.csdn.net/weixin_34294649/article/details/88194268