java网络编程,套接字socket

news2025/2/25 13:53:10

目录

一 网络概述

二 网络的类型分类

三 网络体系结构

四 网络通信协议概述

五 网络通信协议种类

六 Socket简介

七 Socket路径

八 java网络编程三要素

九 基于UDP协议的Socket编程

十 基于TCP协议的Socket编程

十一 基于TCP协议和UDP的区别


一 网络概述

  1. 多台相互连接的计算机
  2. 资源共享
  3. 交换数据

二 网络的类型分类

三 网络体系结构

四 网络通信协议概述

        核心要点:在网络中,多台计算机如果希望进行通信/数据传递 必须遵循某种规约,如果不遵循,则无法进行资源共享或数据的传递

五 网络通信协议种类

        UDP   特点:无连接,数据不可靠/不安全

        TCP   特点:面向连接,数据可靠/安全

六 Socket简介

  1. Socket:套接字【通信链路的节点或端点】
  2. Socket:提供给应用程序的接口

七 Socket路径

        java.net包路径

八 java网络编程三要素

  1. IP地址:设备在网络中的唯一标识
  2. 端口号:应用程序在设备中的唯一标识
  3. 协议:信息在网络传递中必须遵循的规约,例如UDP,TCP协议

九 基于UDP协议的Socket编程

发送段:

package org.example.demo03;


import java.io.IOException;
import java.net.*;

public class SendMsg {
    public static void main(String[] args) throws IOException {
        DatagramSocket datagramSocket = new DatagramSocket();
        String st = "jojo";
        byte[]bytes = st.getBytes();

        InetAddress address = InetAddress.getByName("127.0.0.1");

        int port = 10086;

        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,address,port);

        datagramSocket.send(datagramPacket);
        datagramSocket.close();
    }
}

接收端:

package org.example.demo03;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class ReceMsg {
    public static void main(String[] args) throws IOException {
        DatagramSocket datagramSocket = new DatagramSocket(10086);

        byte[] bytes = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);
        datagramSocket.receive(datagramPacket);

        byte[]data = datagramPacket.getData();
        int length = datagramPacket.getLength();

        System.out.println("接收到的数据"+new String(data,0,length));
        datagramSocket.close();
    }
}

 

十 基于TCP协议的Socket编程

发送端:

package org.example.demo04;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class SendMsg {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("127.0.0.1",10001);
        OutputStream os = socket.getOutputStream();
        os.write("乔尼".getBytes());

        os.close();
        socket.close();
    }

}

接收端:

package org.example.demo04;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ReceMsg {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(10086);

        Socket socket = ss.accept();
        InputStream is = socket.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        int b;
        while ((b = isr.read()) != -1) {
            System.out.print((char)b);
        }
        is.close();
        ss.close();

    }
}

十一 基于TCP协议和UDP的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982124.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习入门教学——独热编码One-hot

1、前言 在机器学习过程中,我们经常需要对特征进行分类,例如:性别有男、女,国籍有中国、英国、美国等,种族有黄、白、黑。 但是分类器并不能直接对数据进行分类,所以我们需要先对数据进行处理。如果要作为…

通信原理板块——正弦波加窄带高斯噪声、高斯白噪声、带限白噪声

1、正弦波加窄带高斯噪声 调制系统中,传输的信号是用正弦波作为载波的已调信号。通常信号经过信道传输时总会受到噪声的干扰,为了减少噪声的影响,在解调器的前端设置一个带通滤波器,以滤除信号频带以外的噪声。带通滤波器的输出是…

git: ‘lfs‘ is not a git command unclear

首先可以尝试 git lfs install 是否可以,不可以后就看这个连接:https://stackoverflow.com/questions/48734119/git-lfs-is-not-a-git-command-unclear。 我的是ubuntu,所以: git-lfs requires git version 1.8.3.1 or later. Yo…

linux运维(一)

一、端口号的范围是从1~65535。 其中1~1024是被RFC 3232规定好了的,被称作“众所周知的端口”(Well Known Ports); 从1025~65535的端口被称为动态端口(Dynamic Ports),可用来建立与…

Fast RCNN

【简介】 Fast RCNN[6]网络是RCNN和SPPNet的改进版,该网路使得我们可以在相同的网络配置下同时训练一个检测器和边框回归器。该网络首先输入图像,图像被传递到CNN中提取特征,并返回感兴趣的区域ROI,之后再ROI上运用ROI池化层以保证…

Openvslam

文章目录 Openvslam 学习报告什么是Openvslam概念特点 安装和运行OpenVSLAM克隆源代码安装依赖库测试(环境已经安装成功)运行运行失败的总结运行成功 系统设计模块和函数接口调用流程流程图参考资料 Openvslam 学习报告 什么是Openvslam 概念 OpenVSL…

FPGA GTH aurora 8b/10b编解码 PCIE 视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTH 全网最细解读GTH 基本结构GTH 发送和接收处理流程GTH 的参考时钟GTH 发送接口GTH 接收接口GTH IP核调用和使用 4、设计思路框架视频源选择silicon9011解码芯片配置及采集动态彩条视频数据组包GTH aurora 8b/10…

Vue3+Vue-i18n+I18N ALLY+VSCODE 自动翻译多国语言

ps: 效果图放前面,符合的往下看,不符合的出门右转,希望多多点赞评论支持。 三种语言模式,分别是中文、英文、日文 批量翻译 最后的结果 配置vue-i18n 1、下载安装vue-i18n,9以上的版本。 2、创建对应文件夹 3、对应文件夹中代…

【迪文屏幕】开发资料

1、应用手册 《T5L DGUSII 应用开发指南202306.pdf》,这个文档上面,详细介绍了各种控件的使用方法。 这个文档可以在官方论坛上找到,也可以直接在csdn上下载。 2、DGUS Tool 界面设计工具,根据所选屏幕的系统选择对应的工具&am…

MES管理系统中,物料BOM为何如此重要

在制造企业中,物料清单(BOM)是描述产品组成结构的核心文件。它列出了制造产品所需的全部零件和组件,以及这些零件和组件的数量和所需工艺。BOM是MES生产管理系统的主要对象之一,它对于生产计划的制定、工艺路线的选择、…

Redis未授权访问漏洞实战

文章目录 概述Redis概述Redis 介绍Redis 简单使用Redis未授权漏洞危害 漏洞复现启动靶场环境POC漏洞验证EXP漏洞利用 总结 本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责! 概述 ​ 本文章主要是针对于vulh…

JDK源码解析-ConcurrentHashMap

1. ConcurrentHashMap 思考:HashTable是线程安全的,为什么不推荐使用? HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占,相当于所有线程进行…

封装一个贡献度面板组件

说在前面 贡献度面板(Contribution Graph)是指在代码仓库中按时间展示每位开发者的提交情况的可视化图表。它会显示不同日期的提交次数,并用颜色的深浅表示提交的数量。 贡献度面板展现的好处有以下几点: 可视化展示&#xff1…

Linux常用命令——cpio命令

在线Linux命令查询工具 cpio 用来建立、还原备份档的工具程序 补充说明 cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。 语法 cpio(选项)选项 -0或--null:接受新增列控制字…

Windows11 设置移动热点 共享WIFI无线上网

Windows11 设置移动热点 共享WIFI无线上网 打开设置 键盘同时按下 windows i 在设置中点击 网络和 internet 移动热点 编辑移动热点参数 移动热点无接入上网设备 移动热点接入上网设备

Leetcode.174 地下城游戏

题目链接 Leetcode.174 地下城游戏 hard 题目描述 恶魔们抓住了公主并将她关在了地下城 d u n g e o n dungeon dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公…

【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

作者简介 前言 博主之前写过一个完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,从安装使用到底层机制、原理。专栏地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm1001.2014.3001.5482 本文是该系列的清单综述&#xf…

ChatGPT集锦

目录 1. 一条指令让ChatGPT变的更强大2. 对ChatGPT提问时,常见的10种错误描述3. Custom instructions如何设置1. 一条指令让ChatGPT变的更强大 在使用GPT的过程中,如何让AI更清晰地了解你的需求很重要?今天分享一个指令,可以让GPT成为你的好同事,与你一起分析和解决问题,…

MySQL数据库进阶实战:优化性能、提高安全性和实现高可用性

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 当涉及到MySQL数据库的进…

【2023年11月第四版教材】第10章《进度管理》(合集篇)

第10章《进度管理》(合集篇) 1 章节说明2 管理基础3 管理过程3.1 管理的过程★★★3.2 管理ITTO汇总★★★ 4 规划进度管理4.1 进度管理计划★★★5 定义活动5.1 滚动式规划★★★5.2 里程碑清单★★★ 6 排列活动顺序6.1 紧前关系绘图法★★★6.2 箭线图…