Java TCP编程(实现方式一)

  • java支持TCP和UDP通信协议的实现类

  • 利用套接字(Socket)开发网络应用程序

  • 通信的两端都要有Socket,是两台机器之间的端点

  • 网络通信其实就是Socket之间的通信

  • Socket允许程序把网络连接当成一个流,数据在两个Socket之间以IO传输

使用TCP编程的主要步骤如下:

1.客户端Socket的工作过程

①创建Socket

②连接到Socket的输入/输出

③按照一定的协议对Socket进行读/写操作

④关闭Socket

  • 客户端

    package javanetwork.day1;
    ​
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    ​
    public class Client {
    ​
        /*
           创建客户端
         */
        public static void main(String[] args) throws IOException {
    ​
            //创建客户端Socket,创建时3次握手建立,连接
            Socket socket = new Socket("192.168.43.149",9999);
            /*
              这里需要抛出一个IOException
            */
    ​
            //客户端向服务器发送信息
            OutputStream out = socket.getOutputStream();
            out.write("你好服务器".getBytes("utf-8"));
    ​
            //接收服务器端发送的信息
            InputStream in = socket.getInputStream();
            byte[] bytes = new byte[100];
            int len = in.read(bytes);
            System.out.println(new String(bytes,0,len,"utf-8"));
        }
    }

2.服务器端的程序的工作过程

①调用ServerSocket();

②调用accept();

③调用该Socket对象的getOutputStream()和getInputStream()

④关闭ServerSocket和Socket对象

  • Server端

    package javanetwork.day1;
    ​
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    ​
    ​
    public class Server {
    ​
        /*
          创建服务器端
        */
        public static void main(String[] args) throws IOException {
    ​
            //建立服务
            ServerSocket serverSocket = new ServerSocket(9999);
            System.out.println("服务器启动了!");
    ​
            //监听有没有客户端尝试连接服务器
            Socket socket = serverSocket.accept();
            System.out.println("客户端连接成功!");
    ​
            //接收客户端发送的信息
            InputStream in = socket.getInputStream();
            OutputStream out = socket.getOutputStream();
            byte[] bytes = new byte[100];
            int len = in.read(bytes);
            //byte转为字符串
            String s = new String(bytes,0,len,"utf-8");
            System.out.println(s);
    ​
            //从服务器端向客户端发送信息
            out.write("你好客户端".getBytes("utf-8"));
        }
    ​
    }
    ​

这样我们就建立起来了服务器端与客户端之间的连接,就可以在客户端与服务器端之间实现通信

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会写代码的菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值