首页 > 其他分享 >tcp协议

tcp协议

时间:2024-08-20 20:29:32浏览次数:13  
标签:协议 java String tcp new import 客户端 Socket

客户端

package com.shujia.day20.tcpdemo2;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

/*
    1:建立客户端的Socket服务,并明确要连接的服务器。
    2:如果连接建立成功,就表明,已经建立了数据传输的通道.就可以在该通道通过IO进行数据的读取和写入.该通道称为Socket流,Socket流中既有读取流,也有写入流.
    3:通过Socket对象的方法,可以获取这两个流
    4:通过流的对象可以对数据进行传输
    5:如果传输数据完毕,关闭资源

 */
public class ClientDemo1 {
    public static void main(String[] args) throws Exception {
        //Socket(String host, int port)
        //创建流套接字并将其连接到指定主机上的指定端口号。
        //创建客户端的Socket对象
        Socket s = new Socket("192.168.28.254", 12345);
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.print("输入要发送的内容:");
            String info = sc.next();

            //通过Socket对象获取通道中的输出流, 本质上就是字节输出流
            OutputStream os = s.getOutputStream();
            os.write(info.getBytes());
            if("over".equals(info)){
                break;
            }

            //获取通道中的输入流,用于接收服务端的反馈
            InputStream inputStream = s.getInputStream();
            byte[] bytes = new byte[2048];
            int length = inputStream.read(bytes);
            String info2 = new String(bytes, 0, length);
            System.out.println(info2);


        }



        s.close();

    }
}

服务端

package com.shujia.day20.tcpdemo2;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/*
    1:建立服务器端的socket服务,需要一个端口
    2:服务端没有直接流的操作,而是通过accept方法获取客户端对象,在通过获取到的客户端对象的流和客户端进行通信
    3:通过客户端的获取流对象的方法,读取数据或者写入数据
    4:如果服务完成,需要关闭客户端,然后关闭服务器,但是,一般会关闭客户端,不会关闭服务器,因为服务端是一直提供服务的

 */
public class ServerDemo1 {
    public static void main(String[] args) throws Exception {
        //创建服务端的Socket对象
        //ServerSocket(int port)
        //创建绑定到指定端口的服务器套接字。
        ServerSocket ss = new ServerSocket(12345);

        //调用服务器的ServerSocket的方法,监听客户端的连接,底层建立传输通道
        Socket socket = ss.accept(); // 发生阻塞,等待客户端的连接

        while (true) {
            //获取通道中的输入流对象
            InputStream is = socket.getInputStream();
            byte[] bytes = new byte[2048];
            int length = is.read(bytes);
            String info = new String(bytes, 0, length);
            if("over".equals(info)){
                break;
            }
            System.out.println(info);

            //获取通道输出流,给客户端一个反馈信息
            OutputStream outputStream = socket.getOutputStream();
            outputStream.write("服务器已收到!".getBytes());
        }


        //关闭与客户端的通道
        socket.close();

    }
}

标签:协议,java,String,tcp,new,import,客户端,Socket
From: https://www.cnblogs.com/qiwei-bigdata/p/18370248

相关文章

  • udp协议
    发送端packagecom.shujia.day20.udpdemo2;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;importjava.util.Scanner;/*1:建立udp的socket服务2:将要发送的数据封装成数据包3:通过udp的socket服务,将数据包......
  • 深入理解TCP选择性确认(SACK):优化网络传输的机制
    摘要TCP(传输控制协议)是互联网上使用最广泛的协议之一,用于在不可靠的网络环境中提供可靠的数据传输服务。然而,在某些情况下,如网络拥塞或丢包,TCP的默认重传机制可能会导致不必要的性能下降。为了解决这个问题,TCP引入了选择性确认(SACK)机制。本文将详细介绍SACK的概念、工作原......
  • SPI协议详解
    SPI协议详解摘要SPI(SerialPeripheralInterface)是一种同步串行通信协议,用于微控制器(MCU)和它们的外围设备(外设IC)之间或两个微控制器(MCU)之间的通信。SPI通信是全双工的,意味着它可以同时发送和接收数据。,以其全双工、高速率和简单硬件结构优于UART。SPI通信通常需要四根线:SCLK(时......
  • TCP 通信-Qt-思维导图-学习笔记
    TCP通信TCP简介TCP协议概述全称:TransmissionControlProtocol(传输控制协议)特性:面向连接、可靠、基于字节流的传输层通信协议TCP通信流程建立连接:TCP通信必须先建立连接通信端:分为客户端和服务端服务端操作监听端口:服务端监听某个端口,等待客户端连接......
  • IOS 12 自定义用户协议对话框
    实现效果实现逻辑本文使用QMUI里面提供的控制器+自定义控件实现。添加依赖#腾讯开源的UI框架,提供了很多功能,例如:圆角按钮,空心按钮,TextView支持placeholder#https://github.com/QMUI/QMUIDemo_iOS#https://qmuiteam.com/ios/get-startedpod"QMUIKit"还不了解如何使......
  • Modbus协议
    一、Modbus协议Modbus协议是一种软件协议,支持RS232(硬件层协议)、RS485(硬件层协议)、TCP/IP等多种电气接口。Modbus协议标准开放、无版权要求,消息帧格式简单,便于厂商开发和集成。Modbus可以在各种介质上传输,报文类型支持ASCII、RTU、TCP三种,使用串口传输时选择ASCII(字符)和RTU模......
  • 学懂C++(三十九):网络编程——深入详解 TCP 和 UDP 的区别和应用场景
    目录一、TCP的特点及应用场景1.可靠性2.流控制和拥塞控制3.有序传输4.应用场景二、UDP的特点及应用场景1.无连接2.不可靠性3.轻量级4.支持广播和多播5.应用场景三、TCP和UDP的区别四、TCP和UDP的工作原理1.TCP的工作原理三次握手数据传输......
  • 网络通讯协议与套接字
    网络通讯协议与套接字一、基本概念网络网络就是一种辅助双方或者多方能够连接在一起的工具,为了让在不同的电脑上运行的软件,之间能够互相传递数据,就需要借助网络的功能IP地址IP地址的概念和作用地址就是用来标记地点的,用来在网络中标记一台电脑,比如192.168.1.1......
  • 面试必备之TCP知识
    概述关于TCP的杂乱知识点,不成体系,毕竟TCP真的太复杂。TCP,TransmissionControlProtocol;IP,InternetProtocol,两者共同组成TCP/IP协议族,包含一系列构成互联网基础的网络协议。OSI七层网络模型图片来自于OSI七层网络模型OSI七层由于太过严格,所以并没有应用在计算机中,其衍生的T......
  • ZooKeeper系列之ZAB协议
    概述ZooKeeperAtomicBroadcast,ZooKeeper原子消息广播协议。ZAB协议是为分布式协调服务ZK专门设计的一种支持崩溃恢复的原子广播协议。ZK主要依赖ZAB协议来实现分布式数据的最终一致性,基于该协议,ZK实现一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。集群角色......