——————————————————————————————————————————————————
(1)。reverseServer.java
package reverseServer;
import java.net.*;
import java.io.*;
public class reverseServer {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
boolean isRunning=true;
ServerSocket ss=new ServerSocket(8888);
while(isRunning)
{
Socket sk=ss.accept();
new Thread(new servicer(sk)).start();
}
ss.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
______________________________________________________________________________________
(2).servicer.java
/**
* 服务器接收发送进程
*/
package reverseServer;
import java.io.*;
import java.net.*;
public class servicer implements Runnable{
private Socket s=null;
public servicer(Socket s)
{
this.s=s;
}
public void run() {
// TODO Auto-generated method stub
try {
//获取客户端输入输出流
InputStream ips=s.getInputStream();
OutputStream ops=s.getOutputStream();
//输入字节流转为字符流
BufferedReader bfr=new BufferedReader(
new InputStreamReader(ips));
/**
* 包装输出流
* 输出一行内容,printwriter类的
* pritnln方法能使用平台自有的行分隔符概念
*/
PrintWriter pw=new PrintWriter(ops,true);
while(true)
{
//读取客户端内容
String strLine=bfr.readLine();
System.out.println(strLine+" 大小:"+strLine.length());
//退出
if(strLine.equalsIgnoreCase("quit"))
break;
//逆反信息
/**
* 假如在客户端输入信息错误用backspace键删掉的时候,
* 会出现特别的情况,大家可以思考一下为什么?
* 例:abc[backspace]d-->dba
*/
String strEcho=new String(new StringBuffer(
strLine).reverse().toString());
pw.println(strLine+" 反向排列为: "+strEcho);
}
bfr.close();
pw.close();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
__________________________________________________________________________________
自《张孝祥java就业教程》