TCP实现不断接收到服务端的反馈

本文介绍了一个简单的TCP客户端和服务端实现案例,客户端能够持续发送消息,并接收来自服务端的大写形式反馈。

客户端

package yuwei.tcp.hufang;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/*
 *需求:
 *客户端不断发送消息,且不断受到服务端的反馈信息为,发送信息的大写
 * */
public class TCPClient {

    public static void main(String[] args) throws UnknownHostException, IOException {
        // TODO Auto-generated method stub

        //建立客户端服务
        Socket s= new Socket(InetAddress.getLocalHost().getHostAddress(),1111);
        //获取Socket的输出流对象,定义目的
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
        //获取键盘录入
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        //定义一个Socket读取流,读取反馈
        BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
        String line = null;

        while((line = br.readLine())!=null) {
            if("over".equals(line)) {
                break;
            }else {
                //将数据写到该流中
                bw.write(line);
                bw.newLine();
                bw.flush();

                //获得服务端的反馈
                String str = in.readLine();
                System.out.println("server: "+ str);
            }
        }
        br.close();
        s.close();

    }

}

服务端

package yuwei.tcp.hufang;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub

        ServerSocket ss = new ServerSocket(1111);
        Socket s = ss.accept();
        String ip = s.getInetAddress().getHostAddress();
        System.out.println(ip + "正在连接");
        //获取客户端的信息读出
        BufferedReader brIn = 
                new BufferedReader(new InputStreamReader(s.getInputStream()));

        //获取输出流对象,将数据输出到客户端
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

        String line = null;

        while((line = brIn.readLine())!=null) {
            //打印服务端接收
            System.out.println(line);
            //反馈信息
            bw.write(line.toUpperCase());
            bw.newLine();
            bw.flush();
        }
        s.close();
        ss.close();
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值