Server端代码:import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class ReverseServer { /**
* @param args 为服务器要使用的端口
*/
public static void main(String[] args) { try {
ServerSocket ss = null;
if (args.length < 1) {
ss = new ServerSocket(8002);
} else {
ss = new ServerSocket(Integer.parseInt(args[0]));
}
boolean bRunning = true;
while (bRunning) {
Socket s = ss.accept();
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
PrintWriter pw = new PrintWriter(out, true);
while (true) {
String strLine = br.readLine();
if (strLine.equalsIgnoreCase("quit")) {
break;
}
String strReverse = new StringBuffer(strLine).reverse().toString();
System.out.println(strReverse);
//pw.println(strLine + "---> " + strReverse);
pw.print(strLine + "---> " + strReverse);
//pw.println();
}
br.close();
pw.close();
}
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}Client端代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;public class ReverseClient { public static void main(String[] args) { try {
Socket s = new Socket("127.0.0.1", 8002);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
PrintWriter pw = new PrintWriter(out, true);
BufferedReader brKeyBoard = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String strLine = brKeyBoard.readLine();
pw.println(strLine); String fromServ = br.readLine();
System.out.println(fromServ);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}}在服务端使用pw.println("strLine + "--->" + StrReverse); 能像Client端写入数据,但是使用pw.println("strLine + "--->" + StrReverse);就不能,这是为什么啊?希望高手解答, 小弟感激不尽!
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;public class ReverseServer { /**
* @param args 为服务器要使用的端口
*/
public static void main(String[] args) { try {
ServerSocket ss = null;
if (args.length < 1) {
ss = new ServerSocket(8002);
} else {
ss = new ServerSocket(Integer.parseInt(args[0]));
}
boolean bRunning = true;
while (bRunning) {
Socket s = ss.accept();
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
PrintWriter pw = new PrintWriter(out, true);
while (true) {
String strLine = br.readLine();
if (strLine.equalsIgnoreCase("quit")) {
break;
}
String strReverse = new StringBuffer(strLine).reverse().toString();
System.out.println(strReverse);
//pw.println(strLine + "---> " + strReverse);
pw.print(strLine + "---> " + strReverse);
//pw.println();
}
br.close();
pw.close();
}
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}Client端代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;public class ReverseClient { public static void main(String[] args) { try {
Socket s = new Socket("127.0.0.1", 8002);
InputStream in = s.getInputStream();
OutputStream out = s.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
PrintWriter pw = new PrintWriter(out, true);
BufferedReader brKeyBoard = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String strLine = brKeyBoard.readLine();
pw.println(strLine); String fromServ = br.readLine();
System.out.println(fromServ);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}}在服务端使用pw.println("strLine + "--->" + StrReverse); 能像Client端写入数据,但是使用pw.println("strLine + "--->" + StrReverse);就不能,这是为什么啊?希望高手解答, 小弟感激不尽!
PrintWriterpublic PrintWriter(Writer out,
boolean autoFlush) 创建新 PrintWriter。 参数:
out - 字符输出流
autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区
于是当你用print的时候,注意刷一下。