java学习之完整tcp服务器模型

——————————————————————————————————————————————————

(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就业教程》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值