一个简单的Echo Server的Java实现(增强版)

Server:
package  midi.socket;

import  java.io.IOException;
import  java.net.ServerSocket;
import  java.net.Socket;

public   class  PowerEchoServer  {

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
        
try {
            ServerSocket server 
= new ServerSocket(10000);
            System.out.println(
"Echo Server started!");
            
while (true{
                Socket socket 
= server.accept();
                System.out.println(
"a new comer!");
                Runnable r 
= new EchoHandlerThread(socket, 10000);
                Thread t 
= new Thread(r);
                t.start();
            }

        }
 catch (IOException e) {
            e.printStackTrace();
        }


    }


}

处理线程:
package  midi.socket;

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;

public   class  EchoHandlerThread  implements  Runnable  {

    Socket socket 
= null;
    
int port = 0;
    
public EchoHandlerThread(Socket socket, int port) {
        
this.socket = socket;
        
this.port = port;
    }

    
public void run() {
        
try {
            InputStream inStream 
= socket.getInputStream();
            OutputStream outStream 
= socket.getOutputStream();
            
            BufferedReader br 
= new BufferedReader(new InputStreamReader(inStream));
            PrintWriter pw 
= new PrintWriter(outStream);
            
            pw.write(
"Welcome  ");
            pw.write(
"Type BYE to exit! ");
            pw.flush();
            
boolean done = false;
            String line 
= null;
            
while(!done && (line=br.readLine())!=null{
                pw.write(
"Echo:"+line+" ");
                pw.flush();
                
if(line.trim().equalsIgnoreCase("bye"))
                    done
=true;
            }

        }
 catch (IOException e) {
            e.printStackTrace();
        }

        
finally {
            
try {
                socket.close();
            }
 catch (IOException e) {
                e.printStackTrace();
            }

        }

        
    }


}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值