广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JavaTCP网络通信协议详细讲解
  • 711
分享到

JavaTCP网络通信协议详细讲解

2024-04-02 19:04:59 711人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

tcp与UDP都属于TCP/IP协议 TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的

tcp与UDP都属于TCP/IP协议

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。 一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂, 只简单的描述下这三次对话的简单过程:

1)主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;

2)主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包 :“可以,你什么时候发?”,这是第二次对话;

3)主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”, 这是第三次对话。

三次“对话”的目的是使数据包的发送和接收同步, 经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP的三次握手过程保证了传输的安全性,同时会确认对方是否接受到信息

断开的时候进行四次

UDP(User Data Protocol,用户数据报协议)是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传输带宽的限制; 在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

由于不需要像TCP那样的握手过程,使得UDP的传输速度非常快捷,但他不保证传输的安全性,也不确认对方是否接收到信息

实现代码:

//向指定ip发送信息
public static void main(String[] args) throws Exception{
    Socket s=new Socket(InetAddress.getByName(InetAddress.getLocalHost().getHostAddress()),10000);
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    //封装输出流对象
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    String line;
    while (true) {
        if ((line=br.readLine())!=null){
            if("1024".equals(line)) {
                bw.write(line);
                bw.newLine();
                break;
            }
            bw.write(line);
            bw.newLine();
        }
        bw.flush();
        //获取输出流对象
    }
    //释放资源
    s.close();
}
//接收发送到本机的信息
ServerSocket socket=new ServerSocket(10000);
Socket accept = socket.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(accept.getInputStream()));
String line;
while ((line=br.readLine())!=null){
    System.out.println(line);
}

要让俩台进行互通就可以实现了,让他们运行到一起可以使用线程进行封装。

UDP使用的是

//创建发送端的Socket对象(DatagramSocket)
//创建数据,并把数据打包
//DatagramPacket(byte[] buf, int length, InetAddress address, int port)
//构造一个数据包,发送长度为 length的数据包到指定主机上的指定端口号。

使用UDP需要将ip地址固定成ipconfig所显示的ip网关等内容

DatagramSocket ds = new DatagramSocket();
byte[] bys = "hello,udp,我来了".getBytes();
        DatagramPacket dp = new DatagramPacket(bys,bys.length,  InetAddress.getByName("10.102.13.18"),10086);
        //调用DatagramSocket对象的方法发送数据
        //void send(DatagramPacket p) 从此套接字发送数据报包
        ds.send(dp);
        System.out.println("已发送:"+new String(dp.getData(),0,dp.getLength()));
        //关闭发送端
        //void close() 关闭此数据报套接字
        ds.close();
DatagramSocket ds = new DatagramSocket(10086);
while (true) {
    //创建一个数据包,用于接收数据
    byte[] bys = new byte[1024];
    DatagramPacket dp = new DatagramPacket(bys, bys.length);
    //调用DatagramSocket对象的方法接收数据
    ds.receive(dp);
    System.out.println("-----");
    //解析数据包,并把数据在控制台显示
    System.out.println("数据是:" + new String(dp.getData(), 0, dp.getLength()));
}

我们同样使用DatagramSocket 方法进行接收数据

到此这篇关于Java TCP网络通信协议详细讲解的文章就介绍到这了,更多相关Java TCP内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaTCP网络通信协议详细讲解

本文链接: https://www.lsjlt.com/news/167922.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaTCP网络通信协议详细讲解
    TCP与UDP都属于TCP/IP协议 TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的...
    99+
    2022-11-13
  • JavaTCP协议通信超详细讲解
    目录什么是tcp服务端客户端服务端与客户端代码实现实例什么是tcp Tcp通信有两个特点分别是面向连接,具有可靠性. 面向连接:指的是客户端与服务端之间的连接,在通信之前会有三次握手...
    99+
    2022-11-13
  • AndroidMQTT与WebSocket协议详细讲解
    目录MQTTWebSocket总结MQTT MQTT是一个极其轻量级的发布/订阅消息传输协议,对于需要较小代码占用空间或网络带宽非常宝贵的远程连接非常有用 有如下特点: 开放消息协议...
    99+
    2022-11-13
    Android MQTT与WebSocket Android WebSocket协议 Android MQTT协议
  • 【网络原理】网络通信与协议
    ✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 一. 网络发展史二. 网络通信基础1. IP地址2. 端口号3. 认识协议(核心概念)4. 五元组5....
    99+
    2023-08-16
    网络 java java-ee
  • Mqtt通信协议详解
    文章目录 1. 简介mqtt2.mqtt协议实现3.Mqtt数据包4. QoS等级5. mqtt传输安全保证5.1 应用层5.2 传输层5.2.1 TLS安全协议 5.3 网络层 ...
    99+
    2023-09-03
    服务器 网络
  • python 网络通信协议/TCP,UD
    一.osi七层协议 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 协议具体内容   各层的功能简述: 【1】物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率...
    99+
    2023-01-30
    通信协议 网络 python
  • 【网络】HTTP协议详解
    😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪...
    99+
    2023-08-23
    网络 http 网络协议 服务器 c++
  • AndroidIntent通信详细讲解
    目录IntentIntnet 种类Intent FilterIntent 将Activity 、Serivce 、 BroadReceive 之间通信 使用Intent Intent...
    99+
    2022-12-17
    Android Intent通信 Android Intent
  • 详细讲解HTTP协议工作方式
    目录HTTP协议简介HTTP协议概述HTTP工作原理基于 请求-响应 的模式无状态保存无连接HTTP请求方法GETHEADPOSTPUTDELETETRACEOPTIONSCONN...
    99+
    2022-11-12
  • NAT协议(网络地址转换协议)详解
    NAT协议(网络地址转换协议)详解 为什么需要NATNAT的实现方式静态NAT动态NATNAPT NAT技术的优缺点优点缺点 NAT协议是将IP数据报头中的IP地址转换为另外一个IP地址的过程,主要用于实现私有网络访问公...
    99+
    2023-08-23
    网络 智能路由器 服务器
  • C++网络编程详细讲解
    目录一、网络编程二、库示例练习一、网络编程 尽管 Boost.Asio 可以异步处理任何类型的数据,但它主要用于网络编程。这是因为 Boost.Asio 早在添加额外的 I/O 对象...
    99+
    2022-11-13
    C++网络编程 C++网络通信编程
  • 第二十七天- 网络通信协议 TCP UD
        1.网络通信协议   osi七层模型:按照分工不同把互联网协议从逻辑上划分了层级       socket层   2.理解socket:   Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计...
    99+
    2023-01-30
    通信协议 十七天 网络
  • redis protocol通信协议及使用详解
    目录简介Redis的高级用法Redis中的piplineRedis中的Pub/SubRESP protocolSimple StringsBulk StringsRESP IntegersRESP ArraysRESP ...
    99+
    2022-07-15
    redis protocol通信协议 redis protocol
  • redis protocol通信协议及使用详解
    目录简介redis的高级用法Redis中的piplineRedis中的Pub/SubRESP protocolSimple StringsBulk StringsRESP Integ...
    99+
    2022-11-13
  • 详解计算机网络TCP/IP协议
    这篇文章主要介绍“详解计算机网络TCP/IP协议”,在日常操作中,相信很多人在详解计算机网络TCP/IP协议问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”详解计算机网络TCP...
    99+
    2022-10-19
  • 2023/4/4 常见的五种网络通信协议
    目录 一、Http协议 二、Https协议 三、Socket协议 四、WebSocket协议 五、WebService协议 六、总结 一、Http协议 HTTP协议是一种应用层协议,它是基于TCP/IP协议的,主要用于Web应用程序中的...
    99+
    2023-09-13
    服务器 网络 运维
  • C++ TCP网络编程详细讲解
    目录TCP介绍与编程流程TCP C/S架构TCP客户端编程流程1. 创建TCP套接字2. connect连接服务器3. send发送请求4. recv接收应答(默认带阻塞)5. cl...
    99+
    2022-11-13
  • Java中如何使用HTTP协议进行网络通信?
    Java作为一种广泛使用的编程语言,为我们提供了很多便利的网络编程工具。其中,HTTP协议是网络通信中最常见的协议之一。在这篇文章中,我们将会介绍Java中如何使用HTTP协议进行网络通信,以及一些实用的技巧。 首先,我们需要知道Java中...
    99+
    2023-06-14
    http numpy 索引
  • SOME/IP协议详解[2 SOME/IP通信机制]
    目录 2.1 SOME/IP 传输层协议 2.2 SOME/IP-SD服务发现(Service Discovery) 2.2.1 FindService & OfferService服务查找 2.2.2 Subscribe & Subscr...
    99+
    2023-09-06
    tcp/ip 网络 服务器
  • 详解python3实现的web端json通信协议
    之前有用python3实现过tcp协议的,后来又实现了http协议的通信,今天公司想做一个功能自动测试系统, 下午弄了一会,发现json格式的实现可以更简单一点,代码如下:简单解说一下,一般与服务器通信分两...
    99+
    2022-06-04
    详解 通信协议 web
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作