首页 > 编程语言 >网络编程

网络编程

时间:2023-06-16 20:00:44浏览次数:27  
标签:datagramSocket datagramPacket Socket 编程 bytes 网络 new public

网络概述:

  1. 多台相互连接的计算机
  2. 资源共享

        3.交换数据

网络的类型分类

按拓扑分类:星型结构 树型结构 总线型线程 环形结构 网状架构

按范围分类:局域网LAN 城域网MAN 广域网WAN 补充:个人局域网PAN 互联网Internet

按传输方式分类 :有线网络 无线网络 

网络体系结构:

OSI参考模型:物理层  数据链路层 网络层 传输层 会话层 表示层 引用层

TCP/IP参考模型: 网络接口层 网际层 传输层 引用层

网络通信协议概述:

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

网络通信协议种类:

TCP协议(Transmission Control Protocol 传输控制协议)特点:面向连接,数据稳定/安全

UDP协议(User Datagram Protocol 用户数据报协议)特点:无连接,数据不可靠/不安全

Socket简介:

Socket:套接字(通信链路的节点/端点)

Socket:提供给应用程序的接口

Socket的路径:java . net包路径          

java网络编程的三要素

Ip地址:设备在网络中的唯一标识

端口号:应用程序在设备中的唯一标识

协议:信息在网络传递的过程中必须遵守的规约,例如UDP,TCP协议

基于UDP协议的Socket编程-发送数据

public class Demo {
public static void main(String[] args) throws IOException {
//实例化DaragramSocket对象
DatagramSocket datagramSocket = new DatagramSocket();
//封装需要传递的数据(以字节数组的形式传递)
String str="my lover";
//将字符串转换为字节数组;
byte[]bytes=str.getBytes();
//127.0.0.1代表发送到的目标地址{本机地址}
InetAddress byName = InetAddress.getByName("127.0.0.1");
//10086为端口号
int port=10086;
//将数组中所有要传递的数据bytes数组,以及ip地址address,端口号port打包封装到DatagramPacket构造器中
DatagramPacket datagramPacket= new DatagramPacket(bytes, bytes.length, byName, 10086);
//发送这个打包的数据
datagramSocket.send(datagramPacket);//(send发送包)
//释放资源
datagramSocket.close();
}

}

基于UDP协议的Socket编程-接受数据

public class Test1 {
public static void main(String[] args) throws IOException {
//实例化 DatagramSocket对象,指定端口号10086
DatagramSocket datagramSocket = new DatagramSocket(10086);
//封装数据
byte[]bytes=new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length);
datagramSocket.receive(datagramPacket);//( datagramSocket发送,receive接收包datagramPacket打包)
byte[]data=datagramPacket.getData();//(解包)
int length=datagramPacket.getLength();//(解包)
//输出获取的数据
System.out.println("接收到数据"+new String(data,0,length));
//释放资源
datagramSocket.close();
}
}

基于TCP协议的Socket编程-发送数据

 

public class Tcpfa {
public static void main(String[] args) throws IOException {
//实例化Socket对象
Socket socket = new Socket("127.0.0.1",10001);
//以流的形式写出
OutputStream outputStream = socket.getOutputStream();
outputStream.write("我".getBytes());
//释放资源
outputStream.close();
socket.close();

 

}
}

 

基于TCP协议的Socket编程接收数据

 

public class Tcp {
public static void main(String[] args) throws IOException {
//实例化 ServerSocket对象
ServerSocket serverSocket = new ServerSocket(10001);
//获取服务器的链接
Socket socket = serverSocket.accept();
//以流的形式读取数据
InputStream is=socket.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(is);
int b=0;
while((b=inputStreamReader.read())!=-1){
System.out.println((char)b);
}
//释放资源
is.close();
serverSocket.close();
}

 

}

 

标签:datagramSocket,datagramPacket,Socket,编程,bytes,网络,new,public
From: https://www.cnblogs.com/liuxin6de1b/p/17486418.html

相关文章

  • 【网络(七)】
    子网掩码255.255.255.0理论上可容纳多少台主机(C)A.62B.126C.253D.510最大地址个数是256个,其中第一个末段全0的是域地址(网络地址,子网地址),最后一个末段全1的是广播地址,不能分配,所以最多可用地址数是256-2=254个。但是,如果考虑实际情况,至少要有一个网关地址,所以,实际用于分配的地址(如果......
  • 智安网络|人工智能蔓延,网络安全所面临的威胁和应对之道
    随着人工智能(ArtificialIntelligence,AI)技术的快速发展和广泛应用,我们进入了一个智能时代,人工智能已经蔓延到我们生活的方方面面。然而,与其带来的方便和创新相伴随的是网络安全所面临的新威胁。【威胁一:攻击者利用人工智能技术】人工智能技术的进步为攻击者提供了新的机会和工具。......
  • [网络安全] DVWA之 Insecure CAPTCHA 攻击姿势及解题详析合集
    InsecureCAPTCHACAPTCHA(CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart,全自动区分计算机和人类的图灵测试)是一种常用的人机验证机制,旨在防止恶意机器人或自动化程序对网站进行滥用或攻击。reCAPTCHA验证流程如下:网站集成:网站管理员在网站上集......
  • 曲线艺术编程 coding curves 第十一章 玫瑰花形( ROSES)
    第十一章玫瑰花形ROSES原作:KeithPetershttps://www.bit-101.com/blog/2022/11/coding-curves/译者:池中物王二狗(sheldon)源码:github:https://github.com/willian12345/coding-curves曲线艺术编程系列第11章这一篇我们将看到另一种我钟意的曲线类型--玫瑰花形或玫......
  • CKS 考试题整理 (06)-默认网络策略
    Context一个默认拒绝(default-deny)的NetworkPolicy可避免在未定义任何其他NetworkPolicy的namespace中意外公开Pod。Task为所有类型为Ingress+Egress的流量在namespacetesting中创建一个名为denypolicy的新默认拒绝NetworkPolicy。此新的NetworkPolicy必须拒绝namespacetest......
  • IntelliJ IDEA安装亚马逊AI编程助手CodeWishperer
    IntelliJIDEA安装亚马逊AI编程助手CodeWishperer简介CodeWishperer是亚马逊2023年4月份推出的实时AI编程助手,它可以实时分析开发人员所写的代码并根据内容为开发者提供多种代码建议,能大幅度提高开发人员的开发效率,同时也可以支持在多个集成开发环境中安转。如IntelliJIDEA、Vi......
  • 音视频网络传输协议,RTSP/RTMP/SRT/NDI协议之间特点
    网络视频传输协议有哪些,RTSP/RTMP/SRT/RTP之间特点下面详细介绍:有兴趣的小伙伴可加qq群一起交流384170753RTP协议(Real-timeTransportProtocol)是一个网络传输协议,是一种实时传输协议技术,RTP协议常用于流媒体系统(配合RTSP协议)视频会议和一键通(PushtoTalk)系统(配合H.323或SIP),使它成为IP......
  • 一文读懂火山引擎A/B测试的实验类型(1)——编程实验
    一.概述编程实验:指的是通过代码编程进行AB实验,广泛使用于前端优化、策略优化和后端算法优化多种实验场景,包含客户端和服务端实验。前置条件:接入客户端SDK或者服务端SDK,详见:应用接入二.应用场景如何选择实验类型?适用场景是什么?服务端实验:指通过服务端获取实验分组信息并......
  • 一文读懂火山引擎A/B测试的实验类型(1)——编程实验
    一.概述编程实验:指的是通过代码编程进行AB实验,广泛使用于前端优化、策略优化和后端算法优化多种实验场景,包含客户端和服务端实验。前置条件:接入客户端SDK或者服务端SDK,详见:应用接入二.应用场景如何选择实验类型?适用场景是什么?服务端实验:指通过服务端获取实验分组信息并控制配置......
  • Apache Storm教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介ApacheStorm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过ApacheZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作。ApacheS......