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


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();
    }
}

相关文章

3000字讲讲TCP协议,握手挥手不是你想的那么简单

专注于Java领域优质技术,欢迎关注作者: tobe 来自:tobe的呓语上一次讲了 UDP 协议,从这次开始,就要讲 TCP 协议了,因为 TCP 协议涉及到的东西很多,一篇文章概括不完,所以我把...

Java编程-TCP JAVA编程手机软件

1.1. Java的TCP面向连接, 数据安全, 区分服务器端和客户端.TCP分为Socket(客户端)和ServerSocket(服务端)需要分别建立客户端和服务器端客户端和服务端建立连接后,通过S...

4000 字详解TCP超时与重传,看完没收获算我输

专注于Java领域优质技术,欢迎关注作者: tobe 来自:tobe的呓语上一篇介绍 TCP 的文章「TCP 三次握手,四次挥手和一些细节」反馈还不错,还是蛮开心的,这次接着讲一讲关于超时和重传那一部...

用 Wireshark 让你看见 TCP 到底是什么样

前言当你看到这篇文章时,你只能看到已经渲染好的文字和图像,而网络数据的交互对我们来说,却是看不见的,所以学习计算机网络原理的时候就会觉得非常的抽象,这一度让我苦恼。而且网络数据交换真实的模样,到底是不...

一文带你搞定TCP流量控制 tcp流量控制算法

摘要理想的流量控制实际的流量控制窗口关闭糊涂窗口综合征理想的流量控制什么是流量控制?流量控制就是发送方不能无脑的给接收方发送数据,它需要根据接收方的处理能力来发送数据。理想下的流量控制?理想意味着在实...