【Day29】网络编程

STM32 超声波模块输入捕获测距(标准库) 通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。 阅读详情

目录

一、InetAddress类(获取IP地址)

二、Socket类的常用构造器和常用方法

服务器端代码

客户端代码


一、InetAddress类(获取IP地址)

/**
 * InetAddress类没有提供公共的构造器,而是提供了如下几个静态方法来获取 InetAddress实例       public static InetAddress getLocalHost()
 * public static InetAddress getByName(String host
 * InetAddress提供了如下几个常用的方法
 * public String getHostAddress():返回 IP 地址字符串(以文本表现形式)。
 * public String getHostName():获取此 IP 地址的主机名
 * public boolean isReachable(int timeout):测试是否可以达到该地址
 *
 */

二、Socket类的常用构造器和常用方法

/**
 *  Socket类的常用构造器:
 *      public Socket(InetAddress address,int port)创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
 *      public Socket(String host,int port)创建一个流套接字并将其连接到指定主机上的指定端口号。
 *  Socket类的常用方法:
 *      public InputStream getInputStream()返回此套接字的输入流。可以用于接收网络消息
 *      public OutputStream getOutputStream()返回此套接字的输出流。可以用于发送网络消息
 *      public InetAddress getInetAddress()此套接字连接到的远程 IP 地址;如果套接字是未连接的,则返回 null。
 *      public InetAddress getLocalAddress()获取套接字绑定的本地地址。 即本端的IP地址
 *      public int getPort()此套接字连接到的远程端口号;如果尚未连接套接字,则返回 0。
 *      public int getLocalPort()返回此套接字绑定到的本地端口。 如果尚未绑定套接字,则返回 -1。即本端的端口号。
 *      public void close()关闭此套接字。套接字被关闭后,便不可在以后的网络连接中使用(即无法重新连接
 *      或重新绑定)。需要创建新的套接字对象。 关闭此套接字也将会关闭该套接字的 InputStream 和OutputStream。
 *      public void shutdownInput()如果在套接字上调用 shutdownInput() 后从套接字输入流读取内容,则流将
 *      返回 EOF(文件结束符)。 即不能在从此套接字的输入流中接收任何数据。
 *      public void shutdownOutput()禁用此套接字的输出流。对于 TCP 套接字,任何以前写入的数据都将被发
 *      送,并且后跟 TCP 的正常连接终止序列。 如果在套接字上调用 shutdownOutput() 后写入套接字输出流,
 *      则该流将抛出 IOException。 即不能通过此套接字的输出流发送任何数据。
 */

服务器端代码

ublic class ServerTest {
    public static void main(String[] args) {
        ServerSocket socket=null;
        Socket socket1=null;
        InputStream is=null;
        BufferedReader br=null;
        OutputStream os =null;
        try {
            socket=new ServerSocket(10086);

            //服务器通过监听方法来获取客户端的请求
            socket1=socket.accept();

            //通过返回的Socket对象调用方法获取一个输入流来读取客户端发送过来的消息
            is=socket1.getInputStream();

            //通过输入流读取客户端发送的消息
            br=new BufferedReader(new InputStreamReader(is));
            String str =br.readLine();
            System.out.println("我是服务器,客户端发送给我的数据是"+str);
            socket1.shutdownInput();
            //服务器接受客户端消息后,需要给客户端一个响应信息
            os = socket1.getOutputStream();
            String str1="用户名和密码正确,可以登录";
            byte[] bytes = str1.getBytes();
            os.write(bytes);
            System.out.println("给客户但发送成功");

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                socket.close();
                socket1.close();
                is.close();
                br.close();
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

客户端代码

public abstract class ClientTest {
    public static void main(String[] args) {

        Socket socket=null;
        OutputStream outputStream=null;
        InputStream inputStream =null;
        BufferedReader bufferedReader =null;

        //创建通信链路的断电客户套接字
        try {
            socket=new Socket("127.0.0.1",10086);

            //获取输出流将数据发送出去
            outputStream=socket.getOutputStream();
            String str="用户名,张三;密码、123456";
            byte[] bytes = str.getBytes();

            //通过输出流调用方法将信息发送出去
            outputStream.write(bytes);
            //关闭通道
            socket.shutdownOutput();

            //客户端需要通过输入流读取服务器端发送过来的消息
            inputStream = socket.getInputStream();
            bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String str1= bufferedReader.readLine();
            System.out.println("我是客户端,接收到的服务器端响应信息为:"+str1);

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                socket.close();
                outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

PCB布局规范及其注意事项(纯干货) 这样做的好处是信号1,3层不会有串扰,4和5作为电源有紧密的耦合,3个信号层都有GND平面可以参考,且不会互相产生串扰,唯一的缺点是布线的层面只有3个信号层(信号03的是最适合来传输高速信号,因为该层的二面都有屏蔽,防止干扰传出,也防止干扰传入)33、影响阻抗匹配的参数(ER介电常数(1GHZ以下默认为4.2,以上的话问板厂),H介质厚度(就是内层压合的PP片厚度),W走线的线宽,T走线的厚度(铜厚/减小线的厚度可以增大阻抗))我这里使用的是CITS25来计算阻抗。 阅读详情

相关推荐

从MC到DC:三维重建算法的核心原理与实战对比

本文深入对比了三维重建领域两大经典算法Marching Cubes(MC)与Dual Contouring(DC)的核心原理与实战表现。MC算法原理直观、实现简单,但存在特征丢失和二义性问题;DC算法通过求解二次误差函数(QEF)和利用法向量信息,能更好地保留模型的尖锐特征,但计算更复杂。文章结合医学影像处理实例,为开发者根据速度、精度和特征保真度需求选择合适算法提供了清晰指南。

weixin_29251131的博客 1036

安卓 Day29 :网络编程

安卓网络编程

m0_66295378的博客 213

手把手教你用Microsoft AEC Challenge数据集训练自己的回声消除模型(附完整代码)

本文详细介绍了如何使用Microsoft AEC Challenge数据集训练专业的回声消除模型,包括环境准备、数据清洗、模型架构设计、训练流程和实际部署注意事项。通过完整的代码示例和实战指南,帮助开发者快速掌握AEC技术,提升语音通信系统的回声消除效果。

weixin_27697385的博客 460

Day 29 网络编程3

目录 网络编程3 粘包问题 粘包问题的几种情况 如何解决粘包问题 解决粘包问题 struct模块 TCP协议粘包问题分析 UDP套接字 网络...

weixin_30561177的博客 119

Unity类银河恶魔城学习记录1-10 PlayerWallJump源代码 P37

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考

Homura_的博客 1379

使用ADS进行LNA低噪放设计的详细教程

详细介绍了通过ADS软件进行LNA设计的过程,从晶体管的选型到稳定性系数分析、再到输入输出端匹配,完整的讲解了低噪放的设计流程,可以使新手小白以及学习射频放大器的朋友可以快速的了解掌握ADS的使用方法和LNA的设计方法。

weixin_41831333的博客 3451

【新手向】从零开始学习Java(Day29)Java 网络编程

一起从零开始成就Java大神

黎明前的黑暗最为深邃,但只要你坚持,曙光终会划破天际。 1309

激光条纹中心提取——Steger

激光条纹中心提取-Steger 好久没有记录了,记录一下今天学习的内容,据说Steger在激光条纹中心提取上神一般的存在。文章和代码都分享给大家了哈,其中有四个文件,3个C++,一个python,python一个抠图文件,3个c++包含背景图+原图, 单张图提取, 多张图提取。 分享代码 #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc.hpp> #i

CharmsLUO的博客 5383

网络编程 DAY29

【代码】网络编程 DAY29。

m0_60026178的博客 167

YOLO26涨点改进| TGRS 2026 | 独家创新首发、注意力改进篇| 引入CSSCA频谱-空间交叉注意力,含多种创新改进,小目标检测、图像分割、高光谱图像分类、语义分割任务任务涨点

🔥本文提出CSSCA(频谱-空间交叉注意力)模块,通过中心像素引导的光谱与空间交叉注意力机制,有效提升YOLO26模型的特征表达能力。该模块实现了光谱与空间信息的协同优化,能够自适应强化关键通道与重要空间区域,增强模型对小目标和复杂场景的感知能力。文章详细介绍了CSSCA的网络结构、工作原理及四大优势,包括精准特征表达、协同信息优化、小样本适应性和轻量化设计。同时提供了完整的代码实现和四种改进方案的YAML配置文件,包括基础版、增强版、C3k2融合版和C2PSA融合版,为YOLO26模型的性能提升

Ai缝合怪、助力小伙伴高效发论文 269

基于模糊神经网络实现水质评价预测 - Matlab源码

首先定义输入层、隐含层和输出层的节点数,并初始化权重和阈值,然后开始训练模型,在每轮训练中通过比较模型的输出值与实际值的误差来更新权重和阈值,直到误差达到最小值,为了提高模型的性能,我们可以采用交叉验证等技术进行优化。首先需要准备好数据集,使用的是嘉陵江的水质监测数据集,数据集包含了多个指标,如 pH 值、溶解氧、总氮、总磷等,以及相应的水质等级,我们需要将数据集分为训练集和测试集。在当今环境日益恶化的情况下,水质监测变得越来越重要,模糊神经网络作为一种新型的。

weixin_50547796的博客 147

学习记录——day29 网络编程 TCP和UDP的异同 ip地址

以上通信方式,只能完成同一主机之间的多个进程间的通信,不能实现跨主机的多个进程间通信时,为实现跨主机的通信,引入了网络通信——基于套接字socket的通信方式,能够实现主机之间的多个进程间通信和跨主机的多个进程间的通信。对于发送端而言,无论是大端存储的主机还是小端存储的主机,向网络中发送多字节整数时,一律改成网络字节序传输;在计算机网络中,要做到有条不紊的交换数据,需要道循一些事先约定好的规则。5、TCP的使用场景:对传输质量比较高的以及传输大量数据的通信,在需要可靠通信的传输场合,一般使用TCP协议。

weixin_64918301的博客 1428

【100%通过率】华为OD机试真题 Python 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

day_5.29 网络编程QQDemo.

1 2018-5-29 16:58:13 2 明天回学校玩几天给郭星辰过生日 3 实现一个QQDemo (多线程完成,因为那部分视频损坏没看) 4 ''' 5 from threading import Thread 6 from socket import * 7 8 #1.接收数据,然后打印 9 def recvDate(): 10 ...

aocaiti5781的博客 188

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

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

11.29 网络编程 day7

【代码】11.29 网络编程 day7。

m0_61633791的博客 137

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux网络编程(Day29)

m0_75068590的博客 194

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

day_5.29 py网络编程2

2018-5-29 11:51:57 转载于:https://www.cnblogs.com/zhen1996/p/9104625.html

aocaiti5781的博客 132

2023/08/29 网络编程 day 3

基于UDP的tftp的传输协议。

cscssacd的博客 252

day29_安卓基础之网络编程_json解析

listView的使用简单回顾 第一步: 首先在layout文件中定义一个listview  第二步: 找到定义的listview控件, 设置一个 适配器 (adapter)  第三步: 在 适配器中将 要绑定到 listview中的 数据传给 adapter ,  有了以上三步, 那么数据就可以 显示到屏幕上了  Mvc 设计思想:  M: 数据 V:

xy88115211的博客 518

Python Day 29 网络编程 ( socket中的一些常见方法,登录验证,socketserver模块)

Python Day 29网络编程 ( socket中的一些常见方法,socketserver模块) socket中的一些常见方法 服务端套接字函数 s.bind() 绑定(主机,端口号)到套接字 s.listen() 开始TCP监听 s.accept() 被动接受TCP客户的连接,(阻塞式)等待连接的到来 客户端套接字函数 s.connect() 主动初...

weixin_30287169的博客 191

【day29】python网络编程:socket套接字

socket的发展:AF_UNIX在本地使用文件访问。        AF_INET在网络中访问。 原理:建立在tcp、udp写一下,三次握手之后建立socket套接字 tcp协议下的socket套接字: 运行步骤:服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,...

weixin_34216036的博客 102

Day29 网络编程(三) 大文件传输与UDP通信

1.基于TCP协议传输大文件 可以根据TCP粘包问题的处理方法实现大文件的传输 上传大文件 1 import socket 2 import os 3 import struct 4 import json 5 6 client = socket.socket() 7 client.connect(('127.0.0.1',8080)) 8 ...

weixin_30951231的博客 204

网络编程8.29---day3

【代码】网络编程8.29---day3。

yjh666jhy的博客 202

安卓day29网络编程 HttpClient AsyncHttpClient 断点续传多线程下载器 HttpUtils

一、排坑 HttpClient、Header飘红 Android 6.0 已经移除了httpClient module下的build.gradle中加入: android{ useLibrary 'org.apache.http.legacy' } 导入jar包 放入libs文件夹,右键选择add as library 退出整个程序 MainActivit...

weixin_30583563的博客 299

嵌入式学习DAY29 --- 实现服务器和客户端的通信,OSI模型、TCP/IP、UTP(网络编程开始学习)

嵌入式入门学习笔记,遇到的问题以及心得体会! DAY29 网络编程学习目标: 1、实现不同主机之间的进程间通信(pc对pc) 2、服务器要同时响应多个客户端(并发服务器) 3、网络超时检测 4、广播和组播 5、本地进程间通信 6、项目 之前的项目:学生信息的增删改查,并且将学生的信息保存在本地的文件中 学习过网络编程之后: 服务器:响应客户端的指令,客户端增删改查的信息保存在服务器端数据库中、并发服务器 客户端:注册 登陆 增删改查 概述: 一、OSI模型与TCP/IP协议体系结构 二、TCP和UD

SpringWJN的博客 1475

嵌入式学习DAY29 --- 实现服务器和客户端的通信,OSI模型、TCP IP、UTP(网络编程开始学习)_utp模型

一、OSI模型与TCP/IP协议体系结构二、TCP和UDP协议三、相关知识学习四、初步编程实现。

2401_87555477的博客 1108
上一篇: 【Day28】输入输出流二
下一篇: 【Day01】HTML基础结构
「已注销」
博客等级 码龄4年 169粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

老板大气,I am happy

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值