一个简单的长连接demo

flutter(dart)长连接网络通信socket + protobuf的demo 这几天学习flutter开发,想在app上做个联网小游戏,考虑到实时性,加上自己本身是做游戏服务端的有这方面技术积累,技术选型就选长连接socket + protobuf dart和java语法很多地方一样,又有很多地方是不一样的,还好编程思想是一样的,今天照着自己的想法把网络通讯撸起来,中间唯一卡顿的地方就是查找dart网络通讯相关的api了,现在网上这方面的文章还比较少,所以有了当前人贡献一... 阅读详情
<html>
<body>
<table border="1" width="300">
    <tr><td width="100">文件大小</td><td width="200"><div id="filesize">未知长度</div></td></tr>
    <tr><td>已经下载</td><td><div id="downloaded">0</div></td></tr>
    <tr><td>完成进度</td><td><div id="progressbar" style="float:left;width:1px;text-align:center;color:#FFFFFF;background-color:#0066CC"></div><div id="progressText" style=" float:left">0%</div></td></tr>
</table>
<script type="text/javascript">
    //文件长度
    var filesize=0;
    function $(obj) {return document.getElementById(obj);}

    //设置文件长度
    function setFileSize(fsize) {
        filesize=fsize;
        $("filesize").innerHTML=fsize;
    }

    //设置已经下载的,并计算百分比
    function setDownloaded(fsize) {
        $("downloaded").innerHTML=fsize;
        if(filesize>0) {
            var percent=Math.round(fsize*100/filesize);
            $("progressbar").style.width=(percent+"%");
            if(percent>0) {
                $("progressbar").innerHTML=percent+"%";
                $("progressText").innerHTML="";
            } else {
                $("progressText").innerHTML=percent+"%";
            }
        }
    }
</script>
<?php
ob_start();
@set_time_limit(500);//设置该页面最久执行时间为500秒
$url="http://dldir1.qq.com/qqfile/qq/QQ7.3/15056/QQ7.3.exe";//要下载的文件
$newfname="QQ7.3.exe";//本地存放位置,也可以是D:\Test\QQ7.3,这样做在Win7下要设置相应权限
$file = fopen ($url, "rb");
if ($file) {
    //获取文件大小
    $filesize = -1;
    $headers = get_headers($url, 1);
    if ((!array_key_exists("Content-Length", $headers))) $filesize=0;
    $filesize = $headers["Content-Length"];
    //不是所有的文件都会先返回大小的,有些动态页面不先返回总大小,这样就无法计算进度了
    if ($filesize != -1) {
        echo "<script>setFileSize($filesize);</script>";//在前台显示文件大小
    }
    $newf = fopen ($newfname, "wb");
    $downlen=0;
    if ($newf) {
        while(!feof($file)) {
            $data=fread($file, 1024 * 8 );//默认获取8K
            $downlen+=strlen($data);//累计已经下载的字节数
            fwrite($newf, $data, 1024 * 8 );
            echo "<script>setDownloaded($downlen);</script>";//在前台显示已经下载文件大小
            ob_flush();
            flush();
        }
    }
    if ($file) {
        fclose($file);
    }
    if ($newf) {
        fclose($newf);
    }
}
?>
</body>
</html>

socket长连接 demo 定制心跳对象,客户端心跳机制发送数据,保证连接,服务器延时检查,超时的断开连接,支持多客户端连接,并相应心跳对象 立即下载

相关推荐

socket长连接demo

工作遇到的情况, 记录一个简单的保持长连接的方法,希望对自己对需要使用socket编程的童鞋有点用处。

HTML5 WebSocket长连接详细应用指南(一)

HTML5 WebSocket长连接详细应用指南 WebSocket、服务器发送时间和跨文档消息传递 WebSocket API

XWQ_Q7的博客 581

android socket通信demo

android和服务器使用socket通信的demo; 主要意图是为自实现信息推送做铺垫; 服务器源码使用java语言编写,请确认你的需求; android源码使用eclipse编译, 我的博客提供技术支持: http://blog.csdn.net/a774057695/article/details/47039433

一个有服务器建立长连接的demo

public class TcpLongSocket { public static final String TAG = "TcpLongSocket"; public static String HOST = "172.16.15.10"; public static int PORT = 44023; private ReadThread mReadThre...

qq_22060403的博客 1333

webSocket实现Android客户端之间简单的通讯

webSocket实现Android客户端之间简单的通讯,或者群发

Socket长连接demo

Socket长连接demo

android 长连接 demo,简单明了的android 长连接Socket

【实例简介】【实例截图】【核心代码】服务端代码:package com.shandiangou.sdgprotocol.lib.demo;import com.shandiangou.sdgprotocol.lib.Config;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/*** C...

weixin_32009069的博客 363

尚硅谷Redis 7学习笔记

尚硅谷Redis 7学习笔记

不更了,主打一个陪伴 2万+

Netty+SpringBoot 打造一个 TCP 长连接通讯方案

项目背景正文一、项目架构二、项目模块三、业务流程四、代码详解五、测试六、源码后记项目背景最近公司某物联网项目需要使用socket长连接进行消息通讯,捣鼓了一版代码上线,结果BUG不断,本猿寝食难安,于是求助度娘,数日未眠项目终于平稳运行了,本着开源共享的精神,本猿把项目代码提炼成了一个demo项目,尽量摒弃了其中丑陋的业务部分,希望与同学们共同学习进步。正文一、项目架构本项目使用了netty、re...

程序员闪充宝 952

从理论到实践:用CST微波工作室完成单站雷达RCS仿真的完整指南

本文提供了一份利用CST微波工作室进行单站雷达RCS仿真的完整实践指南。文章深入剖析了从求解器选择(重点推荐积分方程法)、模型与材料设置、平面波激励定义到后处理分析的完整逻辑链条,旨在帮助工程师不仅完成仿真,更能理解其背后的物理原理与工程考量,从而高效、精准地评估目标的电磁散射特性。

weixin_29256771的博客 171

Veeam Backup 13 通过UI界面高效备份VMware ESXi虚拟机的完整指南

本文提供了一份使用Veeam Backup 13图形化界面高效备份VMware ESXi虚拟机的完整指南。内容涵盖从环境准备、添加vCenter/ESXi主机、配置备份存储库,到创建备份任务、设置保留策略与计划,以及执行备份和验证成功的关键步骤。通过直观的UI操作,管理员可以轻松实现虚拟机数据的可靠保护与快速恢复。

weixin_29322553的博客 426

HTTP 长连接(HTTP Persistent Connection)简介

HTTP 长连接(Persistent Connection)是 HTTP/1.1 的一个重要特性,它允许在一个 TCP 连接上发送多个 HTTP 请求和响应,而无需为每个请求重新建立连接。在 HTTP/1.0 中,每个请求都会建立一次独立的 TCP 连接,完成后立即关闭,这种方式称为短连接。: 抓取网络流量,观察 TCP 连接是否在多个 HTTP 请求之间保持打开状态。如果同一个 TCP 会话中有多个 HTTP 请求和响应,说明使用了长连接。如果两次请求没有重新建立连接,说明长连接生效。

HCIE 数通、RHCE、HCIP 欧拉、MySQL OCP 持证工程师。 1991

【初阶】手把手教你轻松上手Denodo | 连接数据库并创建基本视图 (二)

在本教程的第二部分,我们将涵盖:连接到数据库,与创建基本视图。

Denodo的博客 1093

java实现socket长连接_Netty-实现长连接

​ 一个简单的长连接demo分为以下几个步骤:创建连接(Channel)发心跳包发消息,并通知其他用户一段时间没收到心跳包或者用户主动关闭之后关闭连接看似简单的步骤,里面有两个技术难点:如何保存已创建的Channel这里我们是将Channel放在一个Map中,以Channel.hashCode()作为key其实这样做有一个劣势,就是不适合水平扩展,每个机器都有一个连接数的上线,如果需要实现多用户实...

weixin_39631899的博客 951

保姆级教程:DBeaver社区版安装与驱动配置(附阿里云镜像解决下载超时)

本文提供DBeaver社区版的保姆级安装教程,涵盖版本选择、安装路径设置到驱动配置优化。特别针对国内用户遇到的下载超时问题,详细介绍了如何配置阿里云镜像加速驱动下载,确保高效连接MySQL等主流数据库。

weixin_30430169的博客 473

基于51单片机的贪吃蛇游戏设计

本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在CSDN下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩

山山の十三先生 2万+

简单的java和python的socket通信,长连接

因为一些运算要使用到python的模型和算法,python需要和java端建立长连接。这里是一个简单的demo实现: java服务器: public class testSocket{ public static void main(String args[])throws Exception { ServerSocket serverSocket = new ServerSocket(9999); System.out.println("服务启动");

m0_55505998的博客 2851

33、AI赋能5G/6G通信:LDPC码解码与强化学习技术解析

本文探讨了基于AI和强化学习的LDPC码技术在5G/6G通信中的应用。包括LAMS解码器、神经MS解码器、盲识别方法、统一极性-LDPC解码器、NNMS和SNNMS解码器、N-2D-NMS解码器、神经分层MS解码器、MAB-NS方案以及强化学习与MCTS结合的技术。这些技术在提升解码性能、降低计算复杂度和增强系统适应性方面表现出色,为未来通信系统的发展提供了强有力的支持。

lambda的博客 232

java-socket长连接demo体验

一、前言 最近公司在预研设备app端与服务端的交互方案,主要方案有: 服务端和app端通过阿里iot套件实现消息的收发; 服务端通过极光推送主动给app端推消息,app通过rest接口与服务端进行交互; 服务端与app通过mqtt消息队列来实现彼此的消息交互; 服务端与app通过原生socket长连接交互。 虽然上面的一些成熟方案肯定更利于上生产环境,但它...

KHOST的博客 480

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Netty——如何实现长连接

一个简单的长连接demo分为以下几个步骤:长连接流程​ 看似简单的步骤,里面有两个技术难点:如何保存已创建的Channel这里我们是将Channel放在一个Map中,以Channel.hashCode()作为key其实这样做有一个劣势,就是不适合水平扩展,每个机器都有一个连接数的上线,如果需要实现多用户实时在线,对机器的数量要求会很高,在这里我们不多做讨论,不同的业务场景,设计方案也是不同的,可以在长连接方案和客户端轮询方案中进行选择。如何自动关闭没有心跳的连接。

weixin_57323780的博客 1845

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java netty tcp长连接_Netty笔记4-如何实现长连接

​ 前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo。​ 一个简单的长连接demo分为以下几个步骤:长连接流程创建连接(Channel)发心跳包发消息,并通知其他用户一段时间没收到心跳包或者用户主动关闭之后关闭连接​ 看似简单的步骤,里面有两个技术难点:如何保存已创建的Channel这里我们是将Channel放在一个Map中,以Chan...

weixin_30343429的博客 908

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Netty笔记4 - 如何实现长连接

前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo。 关于长连接的背景知识,可以参考《如何使用Socket实现长连接》 ​ 一个简单的长连接demo分为以下几个步骤: 长连接流程 创建连接(Channel) 发心跳包 发消息,并通知其他用户 一段时间没收到心跳包或者用户主动关闭之后关闭连接 ​ 看似简单的步骤,里面有两个技术难点...

lockie的博客 768

基于websocket实现长连接服务

最近做了一个长连接相关的小需求,业务场景为报告的评论。当对报告进行评论时,其他在浏览该报告的用户会得到评论的推送。具体的该功能的实现是基于公司提供的长连接的基础服务,我们只需要接入该平台,申请的得到类似appId的服务标识,并实现相应的rpc方法即可。 基于这个需求,也顺便去了解了websocket的相关内容以及如何自己实现一个websocket服务。 关于websocket的内容这里就不多说了,其是一个基于TCP的应用层协议,利用http进行握手而建立连接,最大的特点就是全双工通信,即服务端可以主动向客户

shanxiaoshuai的博客 1858

java实体类接收json对象_java-socket长连接demo体验

一、前言最近公司在预研设备app端与服务端的交互方案,主要方案有服务端和app端通过阿里iot套件实现消息的收发;服务端通过极光推送主动给app端推消息,app通过rest接口与服务端进行交互;服务端与app通过mqtt消息队列来实现彼此的消息交互;服务端与app通过原生socket长连接交互。虽然上面的一些成熟方案肯定更利于上生产环境,但它们通讯基础也都是socket长连接,所以本人主要是预研了...

weixin_31781061的博客 391

JPush极光推送的原理与简单demo的实现会遇到的问题

JPush极光推送的原理与简单demo的实现会遇到的问题

Minor昔年 1万+
上一篇: ThinkPHP 3.2.3 数据表大小写问题(查询时候强制转换小写)解决办法
下一篇: php 小数整理,向上取整,向下去整,四舍五入,丢弃小数部分,保留整数部分
凯丨
博客等级 码龄14年 88粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值