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

createh54个月前 (12-25)技术教程58


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

相关文章

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

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

一文带你搞定TCP挥手 tcpip握手挥手

摘要TCP断开连接TIME_WAITTIME_WAIT优化TCP保活Sokcet编程TCP断开连接TCP断开连接,需要经历四次挥手,通信的双方都可主动断开连接,断开连接通信的双方占用的资源将会被释放。...

如果你正在准备面试TCP,看这一篇就够了

前言TCP(Transmission Control Protocol,传输控制协议) 是计算机网络的的重要组成部分,也是网络编程的重要内容,还有我们平时接触最多的 HTTP 也是基于 TCP 实现的...

一文带你搞定TCP拥塞控制 tcp拥塞控制技术

摘要拥塞控制慢启动拥塞避免拥塞发生快速恢复拥塞控制什么是拥塞控制?计算机网络是共享的,流量控制避免的是发送方填满接收方的空闲空间,而拥塞控制是避免发送方填满整个网络。没有拥塞控制网络会发生什么?当网络...

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

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