Tcp 简单通信例子

/**
 * 定义端点接收数据并打印在控制台
 * 建立服务端的socket服务 通过severSocket() 并监听一个端口
 * 获取连接的client对象  通过accept方法 这个方法是阻塞式的
 * 客户端发送数据 服务端要使用对应的客户端对象并使用读取流读取数据
 */
class TcpServerDemo {
    public static void main(String[] args) throws IOException {
        System.out.println("Server start ...");
        //建立服务端socket服务  并监听一个端口
        ServerSocket ss = new ServerSocket(10005);
        //获取客户端对象
        Socket s = ss.accept();
        //连接状态
        System.out.println("Connected :" + s.getInetAddress().getHostAddress().toString() + " port:" + s.getPort());
        while (true) {
            System.out.println("等待接收消息:");
            //读取数据
            InputStream in = s.getInputStream();
            byte[] data = new byte[1024];
            int len = in.read(data);
            String str = new String(data, 0, len);
            if ("886".equals(str)) {
                System.out.println("bye");
                ss.close();
                s.close();
                System.exit(0);
            }
            System.out.println(str);
            System.out.println("发信息:");
            BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
            //为了发送数据    获取Socket中的输出流
            OutputStream out = s.getOutputStream();
            out.write(ins.readLine().getBytes());
        }
    }
}
/**
 * 给服务端发送一个文本数据
 */
class TcpClientDemo {
    public static void main(String[] args) throws IOException {
        //创建Socket服务指定目的主机和端口
        Socket s = new Socket("127.0.0.1", 10005);
        while (true) {
            System.out.println("发信息:");
            BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
            String str = ins.readLine();
            //为了发送数据    获取Socket中的输出流
            OutputStream out = s.getOutputStream();
            out.write(str.getBytes());
            if ("886".equals(str)) {
                System.out.println("bye");
                s.close();
                System.exit(0);
            }
            //获取数据
            System.out.println("等待回复中:");
            InputStream in = s.getInputStream();
            byte[] data = new byte[1024];
            int len = in.read(data);
            System.out.println(new String(data, 0, len));
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳十三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值