java网络编程,套接字socket

目录

一 网络概述

二 网络的类型分类

三 网络体系结构

四 网络通信协议概述

五 网络通信协议种类

六 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.mzph.cn/news/72451.shtml

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

相关文章

Python网络编程详解

概要 Python作为一种强大的编程语言,拥有丰富的网络编程库和框架,能够方便地进行各种网络编程任务。本文将介绍Python网络编程的基础知识,包括socket编程和HTTP协议,然后深入探讨一些流行的Python Web框架,包括Flask和…

安卓绘制原理概览

绘制原理 Android 程序员都知道 Android 的绘制流程分为 Measure、Layout、Draw 三步骤,其中 Measure 负责测量 View 的大小Layout 负责确定 View 的位置Draw 负责将 View 画在屏幕上 由 ViewRootImpl 实现的 performTraversal 方法是 Measure、layout、draw 的真正…

2023高教社杯数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

jemalloc 5.3.0源码总结

注意:jemalloc 的最新版本里没有所谓的 huge class,bin 中slab外面也不再套一个run的概念了,看其它人分享的文章时需要注意。 简述 用户侧通过 tcache 来访问,tcache 是一个线程的申请又释放的对象的缓存,它绑定了一…

Jenkins 持续集成:Linux 系统 两台机器互相免密登录

背景知识 我们把public key放在远程系统合适的位置,然后从本地开始进行ssh连接。 此时,远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地,本地会用private key进行解密并把这个随机数发回给远程系统。 最后&#xf…

RHCA之路---EX280(6)

RHCA之路—EX280(6) 1. 题目 Create an application greeter in the project samples which uses the Docker image registry.lab.example.com/openshift/hello-openshift so that it is reachable at the following address only: https://greeter.apps.lab.example.com (Not…

分布式 - 服务器Nginx:基础系列之Nginx静态资源配置优化sendfile | tcp_nopush | tcp_nodelay

文章目录 1. sendfile 指令2. tcp_nopush 指令3. tcp_nodelay 指令 1. sendfile 指令 请求静态资源的过程:客户端通过网络接口向服务端发送请求,操作系统将这些客户端的请求传递给服务器端应用程序,服务器端应用程序会处理这些请求&#xff…

PaddleOCR训练部署文档

Cuda安装 wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run sh cuda_11.6.0_510.39.01_linux.run#可能会报错,查看/var/log/nvidia-installer.log ,kill -9 [ID]可以解决vim ~/.bash…

Linux:tomcat (源码包安装)(官网下载-安装-启动-配置-等等等-----从入门到入土)

介绍 Apache Tomcat软件是一个开源实现 Jakarta Servlet、Jakarta Server Pages、Jakarta Expression Language、Jakarta WebSocket、Jakarta Annotations 和 Jakarta Authentication 规范。 这些规范是Jakarta EE平台的一部分。 Apache Tomcat软件是在开放和参与式中开发的。 …

基于SSM的学校运动会信息管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

网络协议从入门到底层原理学习(一)—— 简介及基本概念

文章目录 网络协议从入门到底层原理学习(一)—— 简介及基本概念一、简介1、网络协议的定义2、网络协议组成要素3、广泛的网络协议类型网络通信协议网络安全协议网络管理协议 4、网络协议模型对比图 二、基本概念1、网络互连模型2、计算机之间的通信基础…

洞察商机,驱动创新:智能数据分析引领企业发展

“五度易链”产业大数据解决方案由产业经济、智慧招商、企业服务、数据服务四大应用解决方案组成,囊括了产业经济监测、产业诊断分析、企业监测预警、企业综合评估、大数据精准招商、招商智能管理、企业管理、企业培育、企业市场服务、企业金融服务、产业数据开放服…

智慧工地可视化解决方案-智慧工地源码

智慧工地是指运用信息化手段,围绕施工过程管理,建立互联协同、智能生产、科学管理的施工项目信息化生态圈,并将此数据在虚拟现实环境下与物联网采集到的工程信息进行数据挖掘分析,提供过程趋势预测及专家预案,实现工程…

每日一题 2651. 计算列车到站时间

难度:简单 不多说 class Solution:def findDelayedArrivalTime(self, arrivalTime: int, delayedTime: int) -> int:return (arrivalTime delayedTime) % 24

为什么在线客服系统的消息撤回功能是有必要的?

如今在日常工作和沟通中,很多企业都在使用在线客服系统跟客户进行线上交流和协作。然而有时候客服可能会不小心发送错误的消息或包含敏感信息的消息,人们在现实的沟通交流中是不会真实存在“说出去的话还能收回来”的情况,但这是在网络上&…

2023-09-05 LeetCode每日一题(从两个数字数组里生成最小数字)

2023-09-05每日一题 一、题目编号 2605. 从两个数字数组里生成最小数字二、题目链接 点击跳转到题目位置 三、题目描述 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 ,每个数组中的元素 互不相同 ,请你返回 最小 的数字,两个数…

大模型综述论文笔记6-15

这里写自定义目录标题 KeywordsBackgroud for LLMsTechnical Evolution of GPT-series ModelsResearch of OpenAI on LLMs can be roughly divided into the following stagesEarly ExplorationsCapacity LeapCapacity EnhancementThe Milestones of Language Models Resources…

如何解决前端传递数据给后端时精度丢失问题

解决精度丢失 有时候我们在进行修改操作时,发现修改既不报错也不生效。我们进行排查后发现服务器端将数据返回给前端时没有出错,但是前端js将数据进行处理时却出错了,因为id是Long类型的,而js在处理后端返回给前端的Long类型数据…

git 给分支添加描述

需求:分支多了不知道当前分支的用处可以使用git br用来描述 效果: 全局安装命令 npm i -g git-br 项目内使用 git br 给f-230825-4-zhou分支备注 git config branch.f-230825-4-zhou.description 用来开发第四迭代需求 再次git br查看效果

【PHP代码审计】反序列化漏洞实战

文章目录 概述资源下载地址Typecho代码审计-漏洞原理call_user_func()_applyFilter()、get()与__get__toString()__construct()install.php POC利用漏洞利用复现利用链执行phpinfo()GET利用POST利用 getshell生成payload漏洞利用蚁剑连接 总结 概述 序列化,“将对象…