java学习----网络编程

Java网络编程socket通讯简单封装(使用多线程)_20170808_LK Java网络编程socket通讯简单封装(使用多线程) 立即下载

网络编程入门

在这里插入图片描述

网络编程概述

计算机网络

​ 计算机网络是指地理位置不同的具有独立功能的计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理协调下,实现资源共享和信息传递的计算机系统。

​ (客户端和服务器通过互联网连接起来实现资源共享和信息传递)

网络编程

网络编程

​ 在网络通信协议下,实现网络互联的不同计算机上运行的程序间可以进行数据交换。

网络编程的三要素

​ IP地址

​ 要想让网络中的计算机能够相互通信,必须为每台计算机指定一个标识号,通过这个标识号来指定接受数据的计算机和识别发送的计算机,IP地址就是标识号,也就是设备的标识。

​ 端口:端口号是可以唯一表示设备中的应用程序

​ 协议:通过计算机网可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。在计算机网络中,这些连接和通信的规则被称为网络通信协议,他对数据的传输格式,传输速率,传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换,常见的协议有UDP协议和TCP协议。

IP地址

网络中设备的唯一标识

IP地址分两大类

  1. IPv4

    是给每个连接在网络上的主机分配一个32bit的地址,按照TCP/IP规定,ip地址用二进制来表示是,每个地址 长32bit,也就是四个字节.为了使用方便,IP地址常被写成十进制的形式,中间有都好分割不同的字节,这种表示方法叫做点分十进制表示法。

  2. IPv6

    由于互联网发展,IP地址需求量增大,网络地址数量有限,为了扩大地址空间,通过IPv6重新定义地址空间,采用128位的地址长度,每16个字节一组,分成8组十六进制数,这样就解决了网络地址资源数量不够的问题

常用命令

ipconfig:查看本机IP地址

ping ip地址:检查网络是否连通

特殊的IP地址

127.0.0.1:是霍总地址,可以代表本机地址,一般用来测试

InetAddress的使用

​ InetAddress表示Internet协议(IP)地址

​ 使用方式代码如下

   public static void main(String[] args) throws UnknownHostException {
        InetAddress address = InetAddress.getByName("192.168.137.1");

        //获取IP地址的主机名
        String name = address.getHostName();
        //返回文本显示的IP地址字符串
        String hostAddress = address.getHostAddress();
        System.out.println("主机名:"+name);
        System.out.println("ip地址:"+hostAddress);

    }
端口

端口:设备上应用程序的唯一标识

端口号:用两个字节表示的整数,他的取值范围是065535.其中,01023之间的端口号用于一些知名

网络服务和应用,普通应用程序需要使用1024以上的端口号。如果端口号被另一个服务或应用占用。会导致当前程序启动失败。

协议

协议:计算机网络中,连接和通信的规则被称为网络通信协议

UDP协议
  • 用户数据报协议(User Datagram Protocol)

  • UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另一台计算机发送数据时,发送端不会去确认接收端是否存在,就会发送出数据,同样接受端在接受到数据是,也不会向发送端反馈是否收到数据

    由于使用UDP协议消耗较小,通信效率高,所以通常会用于音频,视频和普通数据的传输。

  • 例如视频会议一般采用UDP协议,因为这种情况即使偶尔丢失一两个数据包。也不会对数据结果产生影响。但是在使用UDP协议传输数据时,由于UDP协议的面向无连接性,不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。

TCP协议
  • 传输控制协议(Transmission Control Protocol)
  • TCP协议是面向连接的协议,即传输数据之前,在发送端和接收端建立逻辑联系,然后再传输数据。它提供了两台计算机之间可靠无差错的数据传输。在TCP连接中必须要明确客户端与服务器,由客户端向服务端发出连接请求,每次连接的创建都需要经过三次握手。
  • 三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠性。
    • 第一次握手:客户端向服务器端发出连接请求,等待服务器确认。
    • 第二次握手:服务器端向客户端会送一个响应 ,通知客户端收到了连接请求
    • 第三次握手,客户端再次向服务器端发送确认信息,确认连接
  • 完成 三次握手,建立连接后,客户端和服务器端可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可以保证传输数据的安全性,所以应用十分广泛,例如上传文件,下载文件,浏览网页等。
UDP通信程序
UDP通信原理

UDP协议是一种不可靠的网络协议,它在网络的两端个简历一个Socket对象.但是这两个Socket只是发送,接受数据的对象.因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念.

Java 提供了DatagramSocket类作为基于UDP协议的Socket.

UDP发送数据

发送数据的步骤

  1. 创建发送端的Socket对象(DatagramSocket)
  2. 创建数据并把数据打包
  3. 调用DatagramSocket对象发送数据
  4. 关闭发送端
 public static void main(String[] args) throws IOException {
        //创建Socket对象
        DatagramSocket ds=new DatagramSocket();

        //创建数据,并把数据打包
        //DatagramPacket​(byte[] buf, int length, InetAddress address,
        // int port) 构造一个数据包,
        // 发送长度为 length的数据包到指定主机上的指定端口号。
        byte[] bys="超级喜欢菲菲".getBytes();
        int length=bys.length;
        InetAddress inetAddress = InetAddress.getByName("192.168.37.1");
        int port=10087;
        DatagramPacket dp=new DatagramPacket(bys,length,inetAddress,port);
        //调用DatagramSocket对象的方法发送数据
        //void send(DatagramPacket p) 从此套接字发送数据报包。
        ds.send(dp);
        //关闭发送端
        //void close() 关闭此数据报套接字。
        ds.close();
    }
UDP接收数据

UDP接收数据的步骤

  1. 创建接收数据端DatagramSocket对象
  2. 创建一个数据包,用于接收数据
  3. 调用DatagramSocket对象的方法接收数据
  4. 解析数据包,并把数据在控制台上显示
  5. 关闭接收端
TCP通信程序

TCP通信协议是一种可靠的网络协议,他在通信的两端个简历一个Socket对象,从而在通信的两端形成虚拟链路。

一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟的链路进行通信。

Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表连段的通信端口,并通过Socket产生的IO流来进行网络通信

Java为客户端童工了Socket类,为服务提供了ServerSocket类

TCP发送数据

发送数据步骤

  1. 创建客户端的Socket对象
  2. 获取输出流,写数据
  3. 释放资源
 public static void main(String[] args) throws IOException {
        //创建客户端的Socket对象
        //Socket()InetAddress address.int port)创建流套接字并将其链接到指定的IP地址的指定端口号
        //Socket s=new Socket(InetAddress.getByName("192.168.43.240"),10001);
        Socket s=new Socket("192.168.43.1",10086);

        //获取数据流,写数据
        OutputStream os = s.getOutputStream();
        os.write("Mulujet".getBytes());

        //释放资源
        s.close();
    }
TCP接收数据

接受数据的步骤

  1. 创建服务器端的Socket对象

  2. 监听客户端连接,并返回一个Socket对象

  3. 获取输入流,读数据,并把数据显示在控制台

  4. 释放资源

    public static void main(String[] args) throws IOException {
            //创建服务区端Socket对象
            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();
    
        }
    

TCP通信程序的练习

package practise1.Demo5;

import java.io.*;
import java.net.Socket;

public class ServerThread implements Runnable {
    private Socket s;

    int count=0;

    public ServerThread(Socket s) {
        this.s=s;
    }

    @Override
    public void run() {

        //接收数据写道文本文件
        try {
            BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
            //BufferedWriter bw=new BufferedWriter(new FileWriter(file));
            File file=new File("E:\\Java\\IP\\src\\practise1\\Demo5\\123["+count+"].java");
            while(file.exists()){
                count++;
                 file=new File("E:\\Java\\IP\\src\\practise1\\Demo5\\123["+count+"].java");
            }
            BufferedWriter bw=new BufferedWriter(new FileWriter(file));

            String line;
            while((line=br.readLine())!=null){
                bw.write(line);
                bw.newLine();
                bw.flush();
            }

            //给出反馈
            BufferedWriter bwServer=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            bwServer.write("文件上传成功");
            bwServer.newLine();
            bwServer.flush();
            s.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }


    }
}


package practise1.Demo5;

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

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket ss=new ServerSocket(10098);
        while(true){
            //监听客户端连接
            Socket s = ss.accept();
            //为每一个客户端开启一个线程
            new Thread(new ServerThread(s)).start();
        }




    }
}


package practise1.Demo5;

import java.io.*;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket s=new Socket("192.168.137.1",10098);
        String file="E:\\Java\\IP\\src\\practise1\\UDPReceiveDemo.java";
        //封装文本文件数据
        BufferedReader br=new BufferedReader(new FileReader(file));
        //封装输出流写数据
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
        String line;
        while ((line=br.readLine())!=null){
            bw.write(line);
            bw.newLine();
            bw.flush();
        }
        s.shutdownOutput();

        //接收反馈
        BufferedReader brClient=new BufferedReader(new InputStreamReader(s.getInputStream()));
        String data=brClient.readLine();
        System.out.println("服务器的反馈:"+data);

        //释放资源
        br.close();
        s.close();
    }
}

连接:三次握手

取消连接:四次挥手

服务器端的优化
  1. 用循环优化
  2. UUID 不可变的通用唯一标识符的类
  3. 线程
  4. 线程池
package practise2.ThreadPool;

import java.io.*;
import java.net.Socket;

//将本地文件上传到服务器,接收服务器的反馈
public class Client {
    public static void main(String[] args) throws IOException {
        Socket socket=new Socket("172.18.45.241",10098);
        //是本地的流,用来读取本地文件的
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream("C:\\Users\\QQ363\\Desktop\\1.jpg"));

        //写到服务器中要用网络的流
        OutputStream os = socket.getOutputStream();
        //包装提高效率
        BufferedOutputStream bos=new BufferedOutputStream(os);

        int b;
        while ((b=bis.read())!=-1){
            bos.write(b);//通过网络写到服务器中
        }
        //给服务器一个结束标识,文件已经传输
        socket.shutdownOutput();

        //接受反馈
        BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line;
        while((line=br.readLine())!=null){
            System.out.println(line);
        }
        socket.close();
        bis.close();
        socket.close();



    }
}




package practise2.ThreadPool;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.*;

//接收客户端上传的问价你,上传完毕之后给出反馈
public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket ss=new ServerSocket(10098);
        //创建线程池
        ThreadPoolExecutor pool=new ThreadPoolExecutor(
                3, //核心线程数量
                10,//线程池的总数量
                60,//临时线程空闲时间
                TimeUnit.SECONDS,//单位
                new ArrayBlockingQueue<>(5),//阻塞队列
                Executors.defaultThreadFactory(),//创建线程的方式
                new ThreadPoolExecutor.AbortPolicy()//任务拒绝策略
        );
       while(true) {
           Socket accept = ss.accept();
           SocketThread st=new SocketThread(accept);
           pool.submit(st);
       }


    }
}



package practise2.ThreadPool;

import java.io.*;
import java.net.Socket;
import java.util.UUID;


public class SocketThread implements Runnable{
    private Socket accept;
    public SocketThread(Socket accept) {
        this.accept=accept;
    }

    @Override
    public void run() {
        BufferedOutputStream bos=null;
        try {

            //网络中的流,从客户端读取数据
            BufferedInputStream bis=new BufferedInputStream(accept.getInputStream());
            //本地的IO流,把数据写到本地中,实现永久化储存
            bos=new BufferedOutputStream(new FileOutputStream("E:\\Java\\IP\\src\\practise2\\demo2\\"+ UUID.randomUUID().toString()+".jpg"));

            int b;
            while((b=bis.read())!=-1){
                bos.write(b);
            }

            //给出反馈
            BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(accept.getOutputStream()));
            bw.write("上传成功!");
            bw.newLine();
            bw.flush();


        } catch (IOException e) {
            throw new RuntimeException(e);

        }finally {
            if (bos!=null){
                try {
                    bos.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            if (accept!=null){
                try {
                    accept.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }

        }
    }
}


【工业级视觉实战】海康威视SDK + Python + YOLOv11:零延迟目标追踪系统落地指南 要在 Python 中调用海康 DLL,首先得把 C++ 的结构体 1:1 翻译过来。这是很多开发者踩坑最深的地方(指针错误、内存溢出)。import sys# 根据操作系统加载库else:# 定义设备信息结构体 (对应 C++ LPNET_DVR_DEVICEINFO_V30)("sSerialNumber", ctypes.c_byte * 48), # 序列号("byAlarmInPortNum", ctypes.c_byte), # 报警输入个数。 阅读详情

相关推荐

树莓派5外接RTX显卡:从PCIe到驱动的完整踩坑指南

在ARM架构与GPU加速的交汇点,树莓派5凭借其PCIe接口为DIY爱好者打开了外接独立显卡的大门。然而,PCIe x1的带宽限制、供电差异以及NVIDIA驱动在ARM Linux上的兼容性,使得这一组合成为一场高强度的系统底层排错训练。从理解PCIe总线原理、驱动加载机制到CUDA环境配置,每一步都充满挑战。本文以工程实践视角,梳理外接RTX显卡的完整流程、常见故障与性能瓶颈,并探讨其在边缘计算、AI推理等场景下的真实价值,帮助你理性评估这一实验性方案的可行性与替代路径。

chubaisheng8627的博客 351

tcp 实现 java

socket 是默认阻塞的,可以把他作为 位于网络层和传输层的之间的 一个抽象层tcp 之间的通信 其实就是 两个socket 之间的通信socket类 一个该类的对象就是代表一个发送端构造方法: Public socket (String host,int port);==注意 该方法的执行就会连接指定的服务器,若没有异常 则连接成功(三次握手成功)常用方法1.发送端创建socket对象,指定服务器的ip地址和端口号创建字节输出流对象,关联连接通道使用字节流对象将 数据写到 连接通道里去。...

weixin_45631716的博客 433

SAP ERP销售应收&成本科目确定

ERP作为业财一体软件,其中最核心的就是业务与财务模块的自动集成,无需财务进行手工做账,提高工作效率的同时降低人工操作产生的误差。今天浅浅的分享一下SD模块生成会计凭证时,借贷项确定的系统配置。一般项目上借贷项、科目都有FICO提供,但是具体的集成配置是在SD这边。

weixin_43657667的博客 1569

Java之TCP编程综合案例

1搭建一个TCP客户端,从键盘录入整行数据(遇到quit结束录入)然后发送给服务器,再接收服务器返回的数据并输出。 2.搭建TCP客户端,逐行读取stud.txt中数据,然后转化为Student对象,最后将所有对象发送到服务器端。 3.搭建TCP服务器,分离多线程接收客户端发送过来的数据,然后进行输出。

u012135697的博客 735

图解B树的原理及操作

本文主要参考:https://blog.youkuaiyun.com/shenchaohao12321/article/details/83243314 1. B树 1.1 B树的定义 B树也称B-树,它是一颗多路平衡查找树。我们描述一颗B树时需要指定它的阶数,阶数表示了一个结点最多有多少个孩子结点,一般用字母m表示阶数。当m取2时,就是我们常见的二叉搜索树。 一颗m阶的B树定义如下: 1)每个结点最多有m-1个关键字。 2)根结点最少可以只有1个关键字。 3)非根结点至少有Math.ceil(m/2)-

jinking01的专栏 3万+

FPGA赋能:从加权灰度均值到快速收敛的自动曝光实战

本文深入探讨了FPGA在工业视觉自动曝光算法中的应用,重点介绍了加权灰度均值法的优化实现与快速收敛策略。通过硬件友好的算法改造和流水线架构设计,FPGA方案能在1帧内完成曝光调整,显著提升处理速度和能效比,适用于复杂光照条件下的工业检测场景。

weixin_29306317的博客 82

告别“金鱼记忆”:LangChain 五大核心记忆机制与 LCEL 持久化实战全指南

本文深入解析了大模型无状态的本质及LangChain五大记忆机制,帮助开发者解决聊天机器人"遗忘"问题。首先阐明大模型的无状态特性导致无法自主记忆,需依赖历史对话传递上下文,但面临Token限制和成本问题。随后详细介绍LangChain五大缓冲策略:全量对话缓冲、滑动窗口缓冲、摘要缓冲、混合缓冲及精准Token截断缓冲,分析各自的优缺点及适用场景。文章还提供Windows环境下的实战代码示例,包括基础读写操作、混合缓冲实现及常见错误排查。最后指出LangChain架构正向LCEL表达式语

feizuiku0116的博客 6709

【知识分享】IBIS 建模指南 04

文章详细阐述了将缓冲器数据转换为IBIS模型格式的核心步骤与规范要求。主要内容包括:1)IBIS文件三大结构(文件头信息、组件引脚映射、缓冲器行为描述)及其关键词定义;2)四种关键I-V表(上下拉、电源/地钳位)的数据处理规则,强调需避免重复计算效应;3)切换特性描述方法,指出V-T波形表优于Ramp数据的三大优势;4)差分缓冲器通过[DiffPin]关键词实现建模的特殊流程。文中特别强调数据外推校验、参考电压基准转换、工艺角数据排序等易错环节的处理技巧,为创建符合IBIS 4.0规范的精确模型提供指导。

一只豌豆象的博客 2051

开始学习java网络编程

网络是IT发展大势,必学之。 计划用2个月时间学习基础,再用一个月深入学习,目标是掌握java网络编程,掌握一个网络架构,开发一个个人网站,(内容还没想好,可以做个文学库?)下面是网上找的一些资料: 初级:天极网教程 JAVA网络编程 深入理解网络编程

herbert的知识库 1194

UG NX二次开发(C++)-NX2406系列二次开发编程模板配置

前面已经写了有关UG NX二次开发编程模板配置的文章,但是由于NX2406/2412系列的版本中,在UGOpen文件夹中没有了vs_files文件夹了,而是采用了VSIX Project的方式配置(其适用于VS2019),在VS2022中不能正确的配置。我结合以前配置模板的经验和现在的配置方式讲一下NX2406系列二次开发编程模板的配置。我把相应的编程模板放在资源文件UG NX二次开发编程模板(基于NX2406版本制作)中,方便大家下载使用。

GimiGimmy 2640

使用 Simulink 进行电力电子系统的效率优化仿真

电力电子系统(Power Electronics System)是现代电力系统和工业自动化中的关键组成部分,广泛应用于可再生能源发电、电动汽车、不间断电源(UPS)、电机驱动等领域。为了提高系统的整体性能和经济性,必须对电力电子系统的效率进行优化。效率优化的目标是最大化系统的能量转换效率,减少损耗,从而提高系统的可靠性和经济效益。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证电力电子系统的效率优化策略。本教程将详细介绍如何使用 Simulink 进行电力电子系统的效率优化仿真。

xiaoheshang_123的博客 355

Java网络编程学习笔记

1:网络编程基础 什么是网络编程? 网络编程实质就是两个或多个设备之间的数据传输 那接下来我们就要知道数据传输的要素,如下 1.1网络通讯要素 1.1.1 ip地址: 什么是ip地址? 为了可以方便的识别每个计算机网络上的每个设备,网络中的每个设备都会有唯一的数字标识,这就是ip地址 注:ip地址不易记忆,可用主机名,也就是说可用域名(一个ip地址可以对应多个域名,但域名只可以对应一个ip地址) ...

qq_44891295的博客 247

Python量化- Black-Litterman 模型

​​​​​​​Black-Litterman 模型由 Fischer Black 和 Robert Litterman 于 1992 年开发,采用贝叶斯方法进行资产配置。该模型通过结合先前的回报估计(可以从多个来源得出)并结合投资者对未来回报的独特预期来优化分配权重。

探索人工智能领域 1030

Java网络编程学习汇总

Java网络编程(一)概念 未完待续!!!!! 写作不易,如果您觉得写的不错,欢迎给博主点赞、收藏、评论、收藏来一波~让博主更有动力吧! 路漫漫其修远兮,吾必将上下求索~

大鱼的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java后端学习系列(5):Java网络编程基础

TCP/IP协议是一组用于实现网络通信的协议族,它包含了多个层次的协议,其中最核心的是传输控制协议(TCP)和网际协议(IP)。IP协议:主要负责在网络中对数据包进行寻址和路由选择,确保数据能够从源主机发送到目标主机,它是一种无连接的、不可靠的协议,只关注数据包的转发。TCP协议:是一种面向连接的、可靠的传输协议,它在IP协议的基础上,为应用程序提供了可靠的字节流传输服务,通过建立连接、确认机制、重传机制等确保数据准确无误地到达对方。

Azperk的博客 1000

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java学习笔记之网络编程

网络编程中的基础工具类,提供了一些方法获取主机相关信息。无需new对象,可直接调用InetAddress A = InerAddress.getLocalHost();

hssh_的博客 896

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一站式学习Java网络编程

一站式学习Java网络编程-学习手记(一)https://blog.youkuaiyun.com/K_520_W/article/details/120575732?spm=1001.2014.3001.5501

花&败 283

【Java学习笔记】网络编程

网络的相关概念、InetAddress类、Socket基本介绍、TCP、UDP网络通信编程.......

2401_88623584的博客 847

Java学习笔记——网络编程

将不同区域的电脑连接到一起,组成局域网、城域网或广域网。把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。

m0_73856804的博客 1046

java学习笔记14——网络编程

总结:1.要想实现网络通信,需要解决的三个问题- 问题1:如何准确地定位网络上一台或多台主机- 问题2:如何定位主机上的特定的应用- 问题3:找到主机后,如何可靠、高效地进行数据传输2.实现网络传输的三个要素:(对应解决三个问题)> 使用IP地址(准确地定位网络上一台或多台主机)> 使用端口号(定位主机上的特定的应用)> 规范网络通信协议(可靠、高效地进行数据传输)3.通信要素1:IP地址3.1 作用IP地址用来给网络中的一台计算机设备做唯一的编号3.2 IP地址分类。

qq_58956810的博客 585

五分钟学Java:如何学习Java面试必考的网络编程

原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 本文思维导图 简介 Java作为一门后端语言,对于网络编程的支持是必不可少的,但是,作为一个经常CRUD的Java工程师,很多时候都不需要接触到网络编程,自然而然地对这个东西不那么重视了,毕竟,即使像是JVM虚拟机,Java多线程,在平时工作的时候还会用到一些,但是对于网络编程,除非你做的东西确实是需要自己写通讯服务代码的,比如...

Java技术江湖 1751

java基础学习笔记——网络编程

Java网络编程原理概述。

keyYang_zone 1033

Java网络编程学习资源及总结

文章目录Java网络编程学习资源补充编程模式URL总结(更新) Java网络编程 学习资源 计算机网络协议+Java socket网络编程 补充 编程模式 URL URL:Uniform Resource Locator,统一资源定位符。 网络三大基石:HTML,HTTP,URL URL类 构造方法摘要 URL(String spec) 根据 String 表示形式创建 URL 对象。 URL(String protocol, String host, int port, String file) 根

weixin_47219428的博客 317

Java网络编程学习

Java网络编程学习记录

weixin_47605863的博客 312

java网络编程nio视频学习

java网络编程nio视频学习地址: https://www.bilibili.com/video/BV1Z4411C7iW?p=1

weixin_32822759的博客 241
上一篇: java学习--多线程
下一篇: Linux 学习 挂载、卸载光盘和实现虚拟机时间同步
中意OOK
博客等级 码龄7年 26粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值