网络编程—02

网络编程02 因此,服务器从accept()返回后立刻调用read(),读socket就像读管道一样,如果没有数据到达就阻塞等待,这时客户端调用write()发送请求给服务器,服务器收到后从read()返回,对客户端的请求进行处理,在此期间客户端调用read()阻塞等待服务器的应答,服务器调用write()将处理结果发回给客户端,再次调用read()阻塞等待下一条请求,客户端收到后从read()返回,发送下一条请求,如此循环下去。注意,任何一方调用close()后,连接的两个传输方向都关闭,不能再发送数据了。 阅读详情

 

import java.net.*;
/*
需求:通过udp传输方式,将一段文字数据发送出去。
定义一个udp发送端
思路:
1,建立updsocket服务
2,提供数据,并将数据封装到数据包中
3,通过socket服务的发送功能,将数据包发出去
4,关闭资源
*/
class UdpSend
{
 public static void main(String[] args)throws Exception
 {
  //1,创建udp服务,通过DatagramSocket对象
  DatagramSocket ds = new DatagramSocket(8888);
  
  //2,确定数据,并封装成数据包
  byte[] buf = "udp lai le".getBytes();
  DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("114.98.252.175"), 10000);
  
  //3,通过socket服务,将已有的数据包发送出去,通过send方法
  ds.send(dp);
  
  //关闭资源
  ds.close();
 }
}

/*
需求:
定义一个应用程序,用于udp协议的传输的数据并处理

思路:
1,定义udpsocket服务.通常会监听一个端口,其实是给这个接收网络应用程序
定义数字标识。方便于明确哪些

2,定义一个数据包,因为要存储接收到的字节数据,因为数据包
对象中有更多功能可以提取字节数据中的不同数据信息。
3,通过socket服务的receive的方法将收到的数据存入已定义好的
数据包中。
4,通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上
5,关闭资源
*/
class UdpRece
{
 public static void main(String[] args)throws Exception 
 {
  //1,创建udp socket,建立端点
  DatagramSocket ds = new DatagramSocket(10000);
  
  while(true)
  {
   //2,定义数据包,用于存储数据
   byte[] buf = new byte[1024];
   DatagramPacket dp = new DatagramPacket(buf, buf.length);
   
   //3,通过服务的 receive方法将收到数据存入数据包中
   ds.receive(dp);//阻塞式方法
   
   //4,通过数据包的方法获取其中的数据。
   String ip = dp.getAddress().getHostAddress();
   
   String data = new String(dp.getData(), 0, dp.getLength());
   
   int port = dp.getPort();//获取端口
   
   System.out.println(ip+"..."+data+"..."+port);
  } 
   //5.关闭资源
   //ds.close();
 }
}
--------------------------------------------------------------------------------------------------------------------------- 

 

day21-网络编程02 本文摘要: 《网络编程基础》课程重点讲解了网络编程的核心知识点,包括OSI七层模型、TCP/UDP协议及其应用实例。文章通过生动的快递运输案例形象阐释了OSI模型各层功能,并对比了无连接的UDP协议(适用于实时应用)和可靠的TCP协议(适用于网页/APP数据传输)的特点。课程提供了Python实现的UDP/TCP客户端-服务端代码示例,并深入分析了TCP建立连接的"三次握手"和断开连接的"四次挥手"机制。此外,还预告将探讨粘包问题、阻塞/非阻塞模式及IO多路复用等进阶主题,为开发者构建网络应用提供全面指导。 阅读详情

相关推荐

DPABI实战:手把手教你处理小鼠静息态fMRI数据(从Voxel Size到SPM完整流程)

本文详细介绍了使用DPABI处理小鼠静息态fMRI数据的完整流程,从Voxel Size调整到SPM分析,涵盖预处理、质量控制和可视化等关键步骤。针对小鼠数据特有的低分辨率和信噪比问题,提供了实战建议和避坑指南,帮助研究人员高效完成数据分析。

weixin_42663213的博客 476

02 网络编程

文章目录网络编程1.概述2.网络通信三要素IP地址端口号传输协议3.网络模型4.Socket 机制Socket 概述5.IO通信模型6.RPC什么是RPCRPC主要特质RPC原理 网络编程 1.概述 通过通信线路(有线或无线)可以把不同地理位置且相互独立的计算机连同其外部设备连接起来, 组成计算机网络。在操作系统、网络管理软件及网络通信协议的管理和协调下,可以实现计算机 之间的资源共享和信息的传递...

214

告别设备管理器混乱!3分钟学会用STM32CubeMX+Zadig定制专属虚拟串口名称

本文详细介绍了如何利用STM32CubeMX和Zadig工具,为STM32的USB虚拟串口(VCP)定制专属设备名称,从而彻底解决多设备连接时设备管理器端口混乱的难题。通过修改产品字符串描述符并替换驱动,开发者可以在设备管理器中清晰识别不同开发板,显著提升调试效率,尤其适用于多设备协同的竞赛或项目开发场景。

a2b3c4d5e的博客 478

网络编程 day02

字节序:端口和ip大小端转换;TCP编程:流程,函数接口,代码优化,最终通信代码,粘包

lymdcsdn的博客 868

数字蓝牙功放

数字蓝牙功放(TPA3110+BK8000L),基于D类数字功放芯片TPA3116蓝牙功放,HIFI级带滤波15Wx2蓝牙数字功放,支持有线和蓝牙两种音源输入

runweipa的博客 1419

kali破解wifi之airmon-ng 工具利用

......

qq_42378173的博客 1万+

网络编程入门02

在接触网络编程是,网上,基本的socket样例过于简单,公司的网络库匹配性太强,跟业务耦合比较大。所以阅读陈硕的muduo网络库. namespace muduo::net::sockets typedef struct sockaddr SA; 在socketAPI中: int connect(int sock, struct sockaddr *serv_addr, socklen_...

131

1.用Python写了一个进销存管理的软件~需求分析&界面设计&数据库设计&技术路线选择~

前端也打算用Python来写,查了很多的python库,大家比较推荐的是wxpython和QPython,之前接触过一点点的QT,确实非常强大,但是库比较重量级,自己写的这个东西明显配不上QT,又详细调研了一下wxpython,就是它了!

pepper_lihui的专栏 4321

02 NIO网络编程

1 网络编程 1 阻塞 1.1 阻塞模式概述 阻塞模式下,相关方法都会导致线程暂停 ServerSocketChannel.accept 会在没有连接建立时让线程暂停 SocketChannel.read 会在通道中没有数据可读时让线程暂停 阻塞的表现其实就是线程暂停了,暂停期间不会占用 cpu,但线程相当于闲置 单线程下,阻塞方法之间相互影响,几乎不能正常工作,需要多线程支持 但多线程下...

攻城老湿的博客 280

Windows10环境下激活虚拟环境报错【source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称】

在使用Django创建Web程序前,需要创建一个虚拟的工作环境,在使用【source ll_env/bin/activate】命令激活虚拟环境时报错:source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 2。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

rk3576 点亮 LCD(mipi)

瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576 MIPI DSI 增加更低功耗的 C-PHY。

weixin_35723192的博客 363

【Python Web开发】02-Socket网络编程02

Python中的Socket网络编程

Tiger_shl的博客 839

PTC Creo软件二次开发:使用C++进行Creo二次开发实战

C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。由Bjarne Stroustrup在贝尔实验室开发,最初作为C语言的增强版出现,后来发展成为一种独立的语言。C++不仅保留了C语言的高效性和灵活性,还引入了类、模板、命名空间等高级特性,使其成为开发复杂系统和软件的理想选择。

kkchenjj的博客 4041

python 网络编程 day02

2018.8.7 目录 tcp粘包 基于udp的服务端编程 socket模块和套接字属性 udp套接字应用---》广播 tcp应用--》http传输: http请求(Request) http响应(response) day01回顾 1,osi七层模型---》四层  五层 2,三次握手,四次挥手  3,tcp和udp区别 网络概念:主机  端口  ip  协议 服务端:...

时光 826

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

02_7_网络编程

1 InetAddress类的使用 1.1 实现网络通信需要解决的两个问题 如何准确定位网络上一台或多台主机;定位主机上的特定应用 找到主机后如何可靠高效的进行数据传输 1.2 网络通信的两个要素 对应问题1:IP和端口号 IP的理解: IP是网络上唯一标识的计算机实体 在Java中使用InetAddress类代表IP IP分为:IPv4 和 IPv6;万维网 和 局域网 域名: www.baidu.com www.mi.com www.sina.com www.jd.co

qq_43523503的博客 154

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Linux02-网络编程

1.网络分层 1.因特网协议栈分五层: 应用层:支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。主要的协议有:http、ftp、telnet、smtp、pop3等。 传输层:负责为信源和信宿提供应用程序进程间的数据传输服务,这一层上主要定义了两个传输协议,传输控制协议即TCP和用户数据报协议UDP。 网络层:负责将数据报独立地从信源发送到信宿,主...

黑色君王 236

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

02-网络编程

一 、IO模型 (一)阻塞 在阻塞模型下,当channel调用accept()和read()方法时候都会导致当前线程阻塞,accept方法阻塞到有客户端发起连接并且建立好连接后才会执行之后的代码(等待连接、建立连接),read()阻塞到服务器接受完客户端的数据后才会执行之后的代码(等待数据、复制数据),在这样的场景下,若是前面的连接等待时间较长或者数据等待时间较久则可能导致之后的连接超时。 代码 // 使用 nio 来理解阻塞模式, 单线程 // 0. ByteBuffer ByteBuffer buffe

qq_42861526的博客 694

黑马程序员-网络编程02

4. TCP网络编程   面向连接,客户端和服务端   连接效率低   安全可靠协议   适合大数据传输     客户端需要与服务端建立连接,才可以通信   一旦连接建立好了,靠的是IO流进行通信   TCP中的IO流对象,是不可以创建的   流对象是通过Socket服务获取出来的   一但连接成功,在连接的通路,IO流已经建立好了      |-- Socket客户端So

shengxiaguang的专栏 656

Python进阶-网络编程-02

定义:TCP是面向连接的、可靠的、基于字节流的传输控制协议TCP的特点:面向连接可靠传输应答机制超时重传错误校验流量管控TCP通信模型:TCP严格区分客户端、服务端定义:http 协议,超文本传输协议,主要用来发布和传输html页面(网页)http协议组成请求协议响应协议http协议构成:由协议项来构成协议项协议名协议值。

L的博客 763

Java网络编程02:TCP案例

Java网络编程02:TCP案例 客户端 连接服务器Socket 发送消息 //客户端 public class TcpClientDemo01 { public static void main(String[] args) { Socket socket = null; OutputStream os = null; try { //1.要知道服务器的地址,端口号 InetAddress se

丿涛哥哥的博客 174

LINUX网络编程之day02

-----------------------------------------------TCP协议----------------------------------------------------------UDP(user datagram protocol):用户报数据传输协议,是不可靠的无连接的协议 因为在传输之前不用进行链接 所以传输的效率会变高 但是不保证数据的准确性。2.TCP协议:是一个面向连接的 可靠的 基于字节流的一种传输层协议,TCP是一种点对点 一对一的可靠链接协议。

dzguoxingyu的博客 360

chapter_02:网络编程

一、客户端/服务器架构 1、服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的服务。 2、硬件客户端/服务器架构:打印(打印机)服务器/文件服务器 3、软件客户端/服务器架构: 主要服务内容:程序执行、数据传输检索、聚合、更新,或其他类型的编程或数据操作 实例:Web服务器/数据库服务器/窗体服务器 4、客户端/服务器网络编程 在服务器响应客户端请求之前,必须进行准备工作。首先...

weixin_45033674的博客 268
上一篇: 网络编程—01
下一篇: 网络编程—03
麦豆东东
博客等级 码龄14年 2粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值