Java网络编程---TCP通信 java的tcp通讯协议数据传输

createh56个月前 (12-25)技术教程70


TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信

Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信

Java为客户端提供了Socket类,为服务器端提供了ServerSocket类

TCP发送数据

发送数据的步骤:

  • 创建客户端的Socket对象(Socket)
  • 获取输出流,写数据
  • 释放资源
public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //创建客户端的Socket对象(Socket)
        //Socket(InetAddress address,int port):创建流套接字并将其连接到指定IP地址的指定端口
       //Socket s = new Socket(InetAddress.getByName("192.168.106"),10086);
        //Socket(String host,int port):创建流套接字并将其连接到指定IP地址的指定端口
        Socket s = new Socket("192.168.106",10086);

        //获取输出流,写数据
        //OutputStream getOutputStream():返回此套接字的输出流
        OutputStream os = s.getOutputStream();
        os.write("hello,tcp".getBytes(StandardCharsets.UTF_8));
?
        //释放资源
        s.close();
    }
}

TCP接收数据

接收数据的步骤:

  1. 创建服务端的Socket对象(ServerSocket)
  2. 获取输出流,读数据,并把数据显示在控制台
  3. 释放资源
public class ServerDemo {
    public static void main(String[] args) throws IOException {
        //创建服务端的Socket对象(ServerSocket)
        ServerSocket ss = new ServerSocket(10086);
        Socket s = ss.accept();
        InputStream is = s.getInputStream();
?
        //获取输出流,读数据,并把数据显示在控制台
        byte[] bys = new byte[1024];
        int len = is.read(bys);
        String data = new String(bys,0,len);
        System.out.println(data);
?
        //释放资源
        s.close();
        ss.close();
    }
}

相关文章

面试突击67:说一下 TCP/IP 协议?以及每层的作用?

TCP/IP 包含四层模型,从上层往下层分别是:应用层、传输层、网络层、数据链路层。有些资料也会说 TCP/IP 是五层模型,所谓的五层模型指的是在数据链路层下面还有一个物理层,而作为软件工程师一般不...

TCP的滑动窗口机制,谈谈其设计演化过程

理解TCP滑动窗口是如何工作的,对于理解TCP的其他知识是至关重要的。相比于更为简单,同为传输层协议的UDP而言,TCP提供了对传输数据的质量保证。在可靠性上,TCP确保传输的数据不丢失、不重复,也不...

网络协议之TCP/IP协议(面试必考内容) - javaEE初阶 - 细节狂魔

前言TCP/IP协议应用层常见的几种的协议模板xmljsonProtobuffer小结总结传输层UDPUDP协议端格式UDP的特点基于UDP的应用层协议TCP(重点)TCP协议段格式下面,我们就来介绍...