阅读更多

1顶
1踩

开源软件

HP-Socket

    HP-Socket提供以下几类组件,详细内容请参考《HP-Socket网络通信框架开发指南》:

  • Server:基于IOCP / EPOLL通信模型,并结合缓存池、私有堆等技术实现高效内存管理,支持超大规模、高并发通信场景。
  • Agent:Agent组件实质上是Multi-Client组件,与Server组件采用相同的技术架构。一个Agent组件对象可同时建立和高效处理大规模Socket连接。
  • Client:基于Event Select / POLL通信模型,每个组件对象创建一个通信线程并管理一个Socket连接,适用于小规模客户端场景。

v5.4.1 更新

一、加入线程池公共组件

  1. 加入 IHPThreadPool 线程池公共组件
  2. IHPThreadPool 主要方法
    1) Start:启动线程池
    2) Stop:关闭线程池
    3) Submit:提交任务
    4) AdjustThreadCount:调整线程池大小

二、接口更新

  1. IAgent 接口的 Connect() 方法增加参数 usLocalPort,连接时可绑定本地端口
  2. IClient 接口的 Start() 方法增加参数 usLocalPort,连接时可绑定本地端口
  3. IClient/IAgent/IServer 接口增加方法 IsConnected(),检测是否有效连接

三、其它更新

  1. 修复已知问题
  2. 性能优化

v5.3.2 更新

一、Linux版本更新

  1. Android NDK 支持:所有组件源码均可使用Android NDK编译,在Android平台上运行
  2. Bug修复:5.3.1版本中用dlopen()动态加载共享库失败
  3. 增加 _ICONV_DISABLED 预编译宏用于关闭 iconv 库功能
  4. 增加 _ZLIB_DISABLED 预编译宏用于关闭 zlib 库功能
  5. 如果想去除 SSL 或 HTTP 组件,可以分别定义 _SSL_DISABLED 或 _HTTP_DISABLED 宏重新编

hp-socket for android

hp-socket for android

二、Windows版本更新

  1. 修复 C# SDK 关于 SSL 初始化失败 Bug
  2. 增加 _ZLIB_DISABLED 预编译宏用于关闭 zlib 库功能

三、其它更新

  1. http-parser 解析器升级到 2.8.1 版本
  2. OpenSSL 版本升级到 1.1.0h
  3. jemalloc 版本升级到 5.1.0 版本

v5.2.1 更新

一、发布包调整

  1. 版本号修订:Windows 和 Linux 发行版使用统一版本号
  2. 发布文件不再区分非 SSL DLL 和 SSL DLL,统一为 HPSocket DLL 和 HPSocket4C DLL
  3. 发布文件默认包含 SSL 和 HTTP 组件
  4. 如果想去除 SSL 或 HTTP 组件,可以分别定义 _SSL_DISABLED 或 _HTTP_DISABLED 宏重新编

新增 Linux SSL 组件

  1. Server: SSL Server, SSL Pull Server, SSL Pack Server
  2. Agent: SSL Agent, SSL Pull Agent, SSL Pack Agent
  3. Client: SSL Client, SSL Pull Client, SSL Pack Client

hp ssl

新增 Linux HTTP 组件

  1. Server: HTTP Server, HTTPS Server
  2. Agent: HTTP Agent, HTTP Agent
  3. Client: HTTP Client, HTTP Client, HTTP Sync Client, HTTPS Sync Client

hp http

新增 Linux Demo

  1. testecho-ssl: (SRC) SSL simple test echo server/agent/client
  2. testecho-ssl-pfm: (SO) SSL performance test echo server/agent/client
  3. testecho-ssl-pull: (SO) SSL pull echo server/agent/client
  4. testecho-ssl-pack: (4C SO) SSL pack echo server/agent/client
  5. testecho-http: (SRC) HTTP simple test echo server/agent/client/sync-client
  6. testecho-http-4c: (4C SO) HTTP simple test echo server/agent/client/sync-client
1
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Java线程唤醒与阻塞

    阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已经很熟悉了。Java 提供了大量方法来支持阻塞,下面让我们逐一分析。  1. sleep() 方法:sleep() 允许 指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间 内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。   典型地,sleep() 被用在等待某个资

  • 【面试】Java线程阻塞和唤醒的几种方式?

    notify/notifyAll()方法只是解除了等待线程的阻塞,并不会马上释放监视器锁,而是在相应的被synchronized关键字修饰的同步方法或同步代码块执行结束后才自动释放锁。调用wait()方法后,线程将被阻塞,wait()方法将会释放当前持有的监视器锁(monitor),直到有线程调用。需要使用lock对象的newCondition()方法获得Condition条件对象(可有多个)。这里有一个许可证的概念,许可不能累积,并且最多只能有一个许可,只有1和0的区别。可实现公平锁,默认是非公平锁。

  • Java中的多线程之阻塞队列

    阻塞队列是在普通的(先进先出)队列的基础上,做出了扩充~~(标准库中原有的队列Queue和其子类,默认都是线程不安全的。1)线程安全2)具有阻塞特性a)如果队列为空,进行出队列操作,此时就会出现阻塞;一直阻塞到其它线程往队列里添加元素为止。b)如果队列为满,进行入队列操作,此时也会出现阻塞;一直阻塞到其它线程从队列里取走元素为止。

  • 面试 LockSupport.park()会释放锁资源吗?

    (手机横屏看源码更方便) 引子 大家知道,我最近在招人,今天遇到个同学,他的源码看过一些,然后我就开始了AQS连环问。 我:说说AQS的大致流程? 他:AQS包含一个状态变量,一个同步队列……balabala……互斥锁balabala,共享锁balabala…… 我:AQS中除了同步队列,还有什么队列? 他:还有个Condition,Condition中有个条件队列…… 我:条件队列和同步队...

  • 【Java并发编程】:守护线程与线程阻塞的四种情况

    守护线程 Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程。守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程。当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因

  • Java:线程如何阻塞

    Java:线程如何阻塞

  • mac连接sftp 服务器

    2.sftp -P 22 username@192.168.3.1 回车。5.下载好之后:lpwd 查看本地默认下载目录,找到下载文件。4. 输入 get filename 下载对应文件。3.ls 查看文件, cd 进入某目录。3.根据提示输入密码,连接到服务器。

  • Java线程阻塞和唤醒的几种方式

    Object类自带的方法 使用wait()方法来阻塞线程,使用notify()和notifyAll()方法来唤醒线程。 调用wait()方法后,线程将被阻塞,wait()方法将会释放当前持有的监视器锁(monitor),直到有线程调用notify/notifyAll()方法后方能继续执行。 notify/notifyAll()方法只是解除了等待线程的阻塞,并不会马上释放监视器锁,而是在相应的被synchronized关键字修饰的同步方法或同步代码块执行结束后才自动释放锁。 默认使用非公平锁,无法修改。 缺点

  • Java中什么方法导致线程阻塞

    一、为什么引入线程阻塞机制? 为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为了解决这种情况下的访问控制问题,Java 引入了对阻塞机制的支持。 阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系...

  • java 等待和阻塞_Java线程阻塞方法sleep()和wait()精炼详解

    版权声明:因为个人水平有限,文章中可能会出现错误,如果你觉得有描述不当、代码错误等内容或者有更好的实现方式,欢迎在评论区告诉我,即刻回复!最后,欢迎关注博主!谢谢 https://blog.csdn.net/weixin_41101173/article/details/79889464一、前期基础知识储备sleep()和wait()方法都是Java中造成线程阻塞的方法。感兴趣的读者可以参见笔者之...

  • Java 并发编程 四(线程中断、阻塞、唤醒)

    首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,都已经被废弃了其次,在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的协商机制----中断,也即中断标识协商机制中断只是一种协作协商机制,Java没有给中断增加任何语法,中断的过程完全需要程序员自行实现。

  • 线程发生阻塞,怎么唤醒线程?

    有4中阻塞情况,对应的解决办法分别是: 1. 执行 sleep(int millsecond)方法,使当前线程休眠,进入阻塞状态。 ...

  • Java线程阻塞

    阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已经很熟悉了。Java 提供了大量方法来支持阻塞,下面让我们逐一分析。  1. sleep() 方法:sleep() 允许 指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。  典型地,sleep() 被用在等待某个资源就绪

  • JavaEE 初阶(11)——多线程9之“阻塞队列”

    本篇主要是一些“阻塞队列”的相关知识,讲解了阻塞队列在“生产者消费者模型”中的应用

  • 5. 线程的状态,和线程的阻塞方式

    一、线程的状态有6种   1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。   2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。     线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用...

  • Java多线程案例——阻塞队列

    Java多线程案例——阻塞队列

  • Java 线程阻塞、中断及优雅退出

    线程阻塞一个线程进入阻塞状态的原因可能如下(已排除Deprecated方法):sleep()sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对象锁并没有被释放,其他线程无法访问这个对象(即使睡着也持有对象锁)。w

  • Mac如何使用SSH远程连接linux及使用SCP、SFTP和Filezilla进行文件上传、下载

        最近踏入了Mac的坑,各种不适应,linux服务器上有个java web项目几个class需要发布,想找个类似windows下f-secure ssh套件,即可以进行命令操作,又可以进行文件操作。很遗憾,没找到合适的,哪位大侠有合适的求推荐,但是活得干,程序要发布呀,怎么办?那就利用mac自带的ssh、scp和sftp客户端来实现服务器远程连接和文件上传吧,虽然操作不直观,但是简介高效,同...

  • Mac OS X、Linux和Windows设备连接至SFTP服务器的方法

    创建自己的SFTP服务器的方法其实很简单。 SFTP是什么?和FTP有什么不同? FTP(File Transport Protocol)最早是发明于1971年,最初是通过NCP(Network Control Protocol)来传送文件,进行了版本升级后,支持了TCP/IP和IPv6。 像FTP一样,SFTP(Secure File Transport Protocol)也是用于传送...

Global site tag (gtag.js) - Google Analytics