java 单线程echo服务器

2 篇文章 0 订阅

Server 端

1.创建ServerSocket类,绑定指定端口,端口号大于1024(否则需要root权限启动)。
2.调用serverSocket类的accept()方法实现端口监听
3.初始化输入输出流out in
4.循环收发数据
5.关闭流和套接字

Client端

1.创建Socket类,绑定host和端口号
2.初始化输入输出流
3.循环收发数据
4.关闭流

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket=new ServerSocket(5555);
        Socket socket=serverSocket.accept();
        System.out.println(socket);
        PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
        BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String message=null;
        while((message=in.readLine())!=null){
            System.out.println("收到:"+message);
            out.println(message.toUpperCase());
            out.flush();
        }

        //关闭连接
        in.close();
        out.close();
        socket.close();
        serverSocket.close();
    }
}
/**
 * 单线程TCP通讯 实现echo服务器
 */
public class Client {
    public static void main(String[] args) throws IOException {
        Logger logger= org.apache.log4j.Logger.getLogger(Client.class);
        Socket socket=new Socket("localhost",5555);
        System.out.println(socket);

        PrintWriter out=new PrintWriter(socket.getOutputStream(),true);
        BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in));
        String inMessage=null;
        while((inMessage=stdIn.readLine())!=null){
            out.println(inMessage);
            System.out.println("Server return:"+in.readLine());
//            in.reset();
            out.flush();
        }
        in.close();
        out.close();
        stdIn.close();
        socket.close();
    }
}

单线程服务器的缺点:Server一次只能接受一个Client的连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值