首页 > 其他分享 >socket机制

socket机制

时间:2023-05-11 10:12:30浏览次数:39  
标签:DatagramSocket socket bys new 机制 byte Socket

1.概述:
Socket,又称为套接字,用于描述IP地址和端口。应用程序通常通过socket向网络发出请求或者应答网络请求。Socket就是网络编程提供的一种机制:
通信两端都有socket;
网络通信其实就是socket之间的通信;
数据在两个socket之间通过io传输。
网络编程也称作为socket编程,套接字编程。
Socket通信是Client/Server模型。
2.基于udp协议的Socket通信
核心类:DatagramSocket
发送端:
//创建发送端Socket服务对象
DatagramSocket dSocket = new DatagramSocket();

    //创建数据,打包数据
    String message = "hello,are u udp?";
    byte[] bys = message.getBytes();
	int length = bys.length;
	InetAddress address = InetAddress.getByName("localhost");
    //InetAddress address = InetAddress.getLocalHost();
	int port = 12621;
	DatagramPacket dPacket =new DatagramPacket(bys,length,address,localhost);

	//发送数据包
	dSocket.send(dPacket);

	//资源释放
	dSocket.close();

接收端:
   //创建接收端Socket服务对象
    DatagramSocket server = new DatagramSocket(12621);
    //接收数据
    //创建接收数据的数据包(数据接收的容器)
    byte[] bys = new byte[1024];
    DatagramPacket packet = new DatagramPacket(bys,bys.length);

    //接收数据
    server.receive(packet);

    //针对数据包进行解析
    String host = packet.getAddress().getHostAddress();
    byte[] data = packet.getData();

    System.out.Println("接收到了来自"+host+"信息"+new String(data))


    //释放资源
    server.close;

3.基于TCP协议的socket通信

 服务端:
      核心API ServerSoket
      流程:
         创建ServerSocket服务,然后绑定在服务器的IP地址和端口
         监听连接请求
         接受请求,建立TCP连接
         获取输入流读取数据,并显示
         释放资源

         //建立服务端socket服务,并且监听一个端口
         ServerSocket ss = new ServerSocket(13131);

         //监听连接,是一个阻塞方法,有请求过来,建立连接,返回与之对应的socket来通信
         Socket s = ss.accept();

         //获取输入流,读取数据
         InputStream inputStream = s.getInputStream();
         byte[] bys = new byte[1024];
         int len = inputStream.read(bys);
         
         System.out.printLn(new String(bys,0,len));

         //关闭客户端
         s.close();

         //关闭服务端,一般服务端不会关闭
         ss.close();

客户端:
      核心API:Socket
      流程:创建客户端socket对象
            向服务端	请求建立tcp连接
            从tcp连接中获取输出流,写数据
            释放资源

            //创建客户端的socket服务,指定目的主机和端口
            Socket s = new Socket("127.0.0.1",13131);
            //通过socket获取输出流,写数据
            OutputStream outputStream = s.getOutputStream();
            outputStream.write("hello,this is Tcp?".getBytes());

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

关注我的公众号SpaceObj 领取idea系列激活码

标签:DatagramSocket,socket,bys,new,机制,byte,Socket
From: https://www.cnblogs.com/zhanghongrui/p/17390203.html

相关文章

  • 通过构建完整研发管理体系,建立管理机制,让技术组织聚焦目标,高效运转,同时激励团队不断优
    背景  技术管理者(技术总监/经理/CTO)期望通过体系化的管理方式建设,能够在百人,千人以上的团队中有效的构建聚焦目标,自我成长,高效能的研发作战团队,快速拿出成果,支撑业务的快速发展。痛点从小团队人员快速扩张,团队文化稀释,人员效能下降,目标逐渐弱化。各自团队管理方式及......
  • 推荐一个.Net Core开发的Websocket群聊、私聊的开源项目
    今天给大家推荐一个使用Websocket协议实现的、高性能即时聊天组件,可用于群聊、好友聊天、游戏直播等场景。项目简介这是一个基于.NetCore开发的、简单、高性能的通讯组件,支持点对点发送、群聊、在线状态的订阅。该项目还包含群聊例子,可以用于学习。技术架构1、跨平台:基于.Ne......
  • httprunner 4.x学习 - 11.hook 机制
    前言前言httprunner4.x可以支持hook机制,在发送请求前做一些预处理或在请求完成后后置处理setup_hooks:主要用于处理接口的前置的准备工作,也可以对请求request参数签名加密等操作teardown_hooks:主要用于后置清理工作,也可以对返回respone解密等操作测试步骤添加hook在......
  • C++异常和错误处理机制:如何使您的程序更加稳定和可靠
    在C++编程中,异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C++中的异常处理和错误处理机制。什么是异常处理?异常处理是指在程序执行过程中发生异常或错误时,程序能够捕获并处理这些异常或错误的机制。例如,当程序试图访问......
  • C++异常和错误处理机制:如何使您的程序更加稳定和可靠
    在C++编程中,异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C++中的异常处理和错误处理机制。什么是异常处理?异常处理是指在程序执行过程中发生异常或错误时,程序能够捕获并处理这些异常或错误的机制。例如,当程序试图访问一......
  • JS垃圾回收机制
    JS垃圾回收机制主要分为对栈和堆两种存储数据的回收:一、栈中数据回收1) 首先我们需要了解一个概念ESP指针:是指针寄存器的一种,用于堆栈指针,主要用来标记当前活动位置,简单就是标记当前代码执行位置2) 当我们执行一个函数时除了会有存储的变量外,还会有一个执行上下文;此......
  • socket
     #字节序转换函数、IP地址转换函数/*网络字节序采用大端网络通信时,需要将主机字节序转换成网络字节序(大端),另外一个主机获取到数据后根据情况将网络字节序转换成主机字节序#include<arpa/inet.h>//转换32位数据,一般用于转换ip......
  • 一文搞懂事务四大特性、隔离级别、传播机制
    事务四大特性、隔离级别、传播机制事务四大特性(ACID)如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:原子性(Atomic)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据......
  • 解Android系统的进程间通信原理(二)----RPC机制(转)
    解Android系统的进程间通信原理(二)----RPC机制理解Android系统中的轻量级解决方案RPC的原理,需要先回顾一下JAVA中的RMI(RemoteMethodInvocation)这个易于使用的纯JAVA方案(用来实现分布式应用)。有关RMI的相关知识,可以通过下图来归纳:Android中的RPC也是参考了JAVA中......
  • websocket多实例推送解决方案-数据实时展示
    需求需要前端展示实时的订单数据信息。如下图所示,实时下单实时页面统计更新展示 思路方案前端使用websocket建立通信  后端监听数据库的binglog变更,实时得到最新数据,推送到前端 现状及问题客户端想实现实时获取数据的变更,使用了websocket+kafkaMq,当......