精华内容
下载资源
问答
  • Socket框架
    千次阅读
    2019-07-18 21:07:39

    参考:

    https://www.zhihu.com/question/67089512

    本人一直在用libuv,简单快速有效

    编译方法:

    https://blog.csdn.net/zhuyinglong2010/article/details/89252796

    https://blog.csdn.net/stone688598/article/details/89143624


    boost的asio也不错,可我实在不喜欢为了这一点功能就引入boost庞大的库

     

    高性能跨平台(Win&Linux;)网络通信框架 HP-Socket

    更多相关内容
  • HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/... 此源码为基于HP_Socket框架的socket通讯源码。方便二次开发。省去研究框架的时间
  • 传统的Socket框架客户端发出一个请求信息,然后服务器返回一个应答信息,但是我们无法识别这个应答信息是对应哪个请求的,而EasySocket实现了将每个请求跟应答的一一对接,从而在Socket层面实现了请求回调功能 ...
  • 一个简单、轻量级的Android Socket框架。Android Socket Client Library.
  • socket框架 quickServer

    2018-03-23 16:49:26
    socket 框架 quickServer开发样例,讲解多线程、服务器开发等
  • microSocket 十分适合学习的go语言socket框架
  • SuperSocket框架

    2021-03-26 17:25:59
    SuperSocket源码 及文档
  • Java 开源 SOCKET 框架

    2021-02-13 00:21:32
    Ice的Java版,Netty2作者的后续之作Apache MINA...开发者可以利用它来构建高性能的可以发送与接收10000 socket连接的应用程序. Cindy 基于java nio的Cindy提供一个简单,高效的异步I/O框架,支持tcp/udp/pipe并易于测试.

    Ice的Java版,Netty2作者的后续之作Apache MINA,Crmky的Cindy之外,还有个超简单的QuickServer,让你专心编写自己的业务代码,不用编写一行Tcp代码。

    570feb092a90bc248f062522576e64ee.gif

    QuickServer

    QuickServer 是一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议。

    376921ca49958ce6e17fac1abe0db269.gif

    Netty2

    Netty 2 提供了一组基于事件的API来开发高性能, 可管理的TCP/IP服务端或客户端应用程序. 对于要求建立高性能的网络应用来说,Netty提供许多基本特性,像readiness selection, 线程池, 写缓冲DoS的预防, 可重用的缓冲等.

    5057026feef688b2698c3ec0ce45ffe3.gif

    ColoradoFTP

    ColoradoFTP是一个开源完全遵循RFC 959(文件传输协议)的Java FTP服务器。它具有快速,可靠,易于扩展的特点。

    39caa67633751205fdbf08438d8404bc.gif

    Apache James

    完 全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。 James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其 是关于邮件内容存储和用户信息存储。

    a1d2e96b984eb006c5169f4794023a36.gif

    Java Email Server(JES)

    支持SMTP和POP3协议纯Java mail服务器。

    4f4fecba46bd7ac1653759a128413828.gif

    Java Sockets

    Java Sockets是一个Java类库模仿了C++ Sockets library的实现方式并基于SUN的java.nio.* 非阻塞网络I/O类。

    f80b8587dc078a6545d8f4a60be3af10.gif

    Raining Sockets

    Raining Sockets是一个非阻塞的sockets框架.开发者可以利用它来构建高性能的可以发送与接收10000 socket连接的应用程序.

    36e64e238b5e52020ebe7d9e6688c2fb.gif

    Cindy

    基于java nio的Cindy提供一个简单,高效的异步I/O框架,支持tcp/udp/pipe并易于测试.

    展开全文
  • 最近一个项目因为要用到Socket传输问题,所以决定学习一下,将自己学习的内容总结分享出来,下面这篇文章主要给大家介绍了关于C# .NET中Socket简单实用框架使用的相关资料,文中通过示例代码介绍的非常详细,需要的...
  • 一个简单、轻量级的Android Socket框架。2.使用添加依赖Gradle:compile 'me.apon:lemon:1.0.0'orimplementation 'me.apon:lemon:1.0.0'构建Lemon对象SocketClient client = new SocketClient.Build...

    1.Lemon简介

    Android Socket Client Library.

    一个简单、轻量级的Android Socket框架。

    2.使用

    添加依赖Gradle:

    compile 'me.apon:lemon:1.0.0'

    or

    implementation 'me.apon:lemon:1.0.0'

    构建Lemon对象

    SocketClient client = new SocketClient.Builder()

    .ip("120.78.175.94") //设置ip、端口

    .port(7272)

    .setKeepAlive(true) //设置socket选项

    .build();

    //心跳包内容

    String pingData = "{\"type\":\"ping-yaopeng\"}";

    Lemon lemon = new Lemon.Builder()

    .client(client) //设置SocketClient

    .protocols(TextProtocols.create()) //设置协议,可自定义

    .pingInterval(10) //设置心跳间隔(秒)大于0打开心跳功能

    .pingData(pingData.getBytes()) //设置心跳包内容

    .debug(true) //开启调试模式

    .build();

    连接服务器、发送数据、断开连接

    lemon.connect();//连接服务器

    String str = "hello apon!";

    lemon.send(str);//发送数据

    lemon.disconnect();//断开连接

    添加连接回调,onConnect返回Disposable,可调用Disposable.dispose()方法移除当前回调。

    Disposable disposable = lemon.onConnect(new ConnectHandler() {

    @Override

    public void connectSuccess() {

    Log.d(TAG,"===连接成功===");

    lemon.send("连接成功-进入100房间-");

    Toast.makeText(MainActivity.this, "连接成功!", Toast.LENGTH_SHORT).show();

    }

    @Override

    public void connectFail() {

    Log.d(TAG,"===连接失败===");

    }

    @Override

    public void disconnect() {

    Log.d(TAG,"===连接断开===");

    }

    });

    添加接收数据的回调。onMessage返回Disposable,可调用Disposable.dispose()方法移除当前回调。

    Disposable disposable = lemon.onMessage(new MessageHandler() {

    @Override

    public void receive(byte[] data) {

    Log.d(TAG,"====收到数据====: "+new String(data));

    }

    });

    3.通讯协议

    Lemon支持text协议、frame协议。如果以上协议不满足你的业务需求,可以参考TextProtocols.java、FrameProtocols.java定制自己的协议。

    text协议

    Lemon定义了一种叫做text的文本协议,协议格式为 数据包+换行符,即在每个数据包末尾加上一个换行符表示包的结束。

    frame协议

    Lemon定义了一种叫做frame的协议,协议格式为 总包长+包体,其中包长为4字节网络字节序的整数,包体可以是普通文本或者二进制数据。

    配置协议

    Lemon lemon = new Lemon.Builder()

    .client(client) //设置SocketClient

    .protocols(TextProtocols.create()) //使用text协议

    //.protocols(FrameProtocols.create()) //使用frame协议

    .pingInterval(10) //设置心跳间隔(秒)大于0打开心跳功能

    .pingData(pingData.getBytes()) //设置心跳包内容

    .debug(true) //开启调试模式

    .build();

    4.如何制定协议

    实际上制定自己的协议是比较简单的事情。简单的协议一般包含两部分:

    区分数据边界的标识

    数据格式定义

    一个例子

    协议定义

    这里假设区分数据边界的标识为换行符"\n"(注意请求数据本身内部不能包含换行符),数据格式为Json,例如下面是一个符合这个规则的请求包

    {"type":"message","content":"hello"}

    实现

    在Lemon中开发的协议类必须实现Protocols接口,实现pack,unpack方法。Lemon会调用这两个方法打包、分包。(具体参考TextProtocols.java)

    /**

    * Created by yaopeng(aponone@gmail.com) on 2018/11/4.

    */

    public class TextProtocols implements Protocols {

    private List bytes;

    //区分数据边界的标识

    private byte[] tail = "\n".getBytes();

    public static TextProtocols create(){

    return new TextProtocols();

    }

    public TextProtocols() {

    this.bytes = new ArrayList<>();

    }

    //打包,将换行符添加到数据尾部,当向服务端发送数据的时候会自动调用

    @Override

    public byte[] pack(byte[] data) {

    ByteBuffer bb = ByteBuffer.allocate(tail.length + data.length);

    bb.put(data);

    bb.put(tail);

    return bb.array();

    }

    //根据数据边界标识分包

    @Override

    public byte[] unpack(InputStream inputStream) throws IOException {

    bytes.clear();

    int len;

    byte temp;

    byte[] result = null;

    while ((len = inputStream.read()) != -1) {

    temp = (byte) len;

    bytes.add(temp);

    Byte[] byteArray = bytes.toArray(new Byte[]{});

    if (endWith(byteArray,tail)){

    result = getRangeBytes(bytes,0,bytes.size());

    break;

    }

    }

    if (len == -1){

    throw new IOException();

    }

    return result;

    }

    private boolean endWith(Byte[] src, byte[] target) {

    if (src.length < target.length) {

    return false;

    }

    for (int i = 0; i < target.length; i++) {//逆序比较

    if (target[target.length - i - 1] != src[src.length - i - 1]) {

    return false;

    }

    }

    return true;

    }

    private byte[] getRangeBytes(List list, int start, int end) {

    Byte[] temps = Arrays.copyOfRange(list.toArray(new Byte[0]), start, end);

    byte[] result = new byte[temps.length];

    for (int i = 0; i < result.length; i++) {

    result[i] = temps[i];

    }

    return result;

    }

    }

    5.演示

    直接编译运行本项目,使用text协议连接echo服务器(120.78.175.94:7272)。

    License

    Copyright 2018 apon , https://apon.me

    Licensed under the Apache License, Version 2.0 (the "License");

    you may not use this file except in compliance with the License.

    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software

    distributed under the License is distributed on an "AS IS" BASIS,

    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

    See the License for the specific language governing permissions and

    limitations under the License.

    展开全文
  • 应用于unity的C# Socket客户端框架,包含完整的通用逻辑与常见的异常处理,可供新人学习使用。该代码并不能够直接运行,仅供阅读和参考。
  • 9、HP-Socket HP-Socket: 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP通信系统,提供C/C++、C#、Delphi、E(易语言)、Java、Python等...

    ZeroC ICE的Java版,Netty2作者的后续之作Apache MINA,Crmky的Cindy之外,还有个超简单的QuickServer,让你专心编写自己的业务代码,不用编写一行TCP代码。

    1、QuickServer
    官网:http://www.quickserver.org/

    一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议。

    2、Netty 2
    提供了一组基于事件的API来开发高性能,可管理的TCP/IP服务端或客户端应用程序.对于要求建立高性能的网络应用来说,Netty提供许多基本特性,像readiness selection,线程池,写缓冲DoS的预防,可重用的缓冲等。

    3、ColoradoFTP
    一个开源完全遵循RFC 959(文件传输协议)的Java FTP服务器。它具有快速,可靠,易于扩展的特点。

    4、Apache James
    完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】

    5、Java Email Server(JES)
    支持SMTP和POP3协议纯Java mail服务器。

    6、Java Sockets
    Java Sockets是一个Java类库模仿了C++ Sockets library的实现方式并基于SUN的java.nio.*非阻塞网络I/O类。

    7、Raining Sockets
    一个非阻塞的sockets框架.开发者可以利用它来构建高性能的可以发送与接收10000 socket连接的应用程序。

    8、Cindy
    基于java nio的,提供一个简单,高效的异步I/O框架,支持tcp/udp/pipe并易于测试。

    9、HP-Socket
    HP-Socket:

    是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP通信系统,提供C/C++、C#、Delphi、E(易语言)、Java、Python等编程语言接口。HP-Socket对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket提供基于事件驱动模型的API接口,能非常简单高效地整合到新旧应用程序中。

    HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。

    Client 组件:

    基于 Event Select 通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个Socket连接。

    Server 组件:

    基于 IOCP 通信模型,并结合缓存池、私有堆(Private Heap)等技术,支持超大规模连接,在高并发场景下实现高效内存管理。

    Agent 组件:

    对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个 Agent组件对象同时可管理多个Socket连接;Agent组件与Server组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。

    10、Grizzl
    设计与一般的 nio 框架相比是比较不同的,主要不同点在于读和写都是采用 blocking 方式,并且使用临时 selector;线程模型高度可配置。性能据说比 MINA 还高,但是学习曲线很高。

    11、xSocket
    官网:http://xsocket.sourceforge.net/

    一个轻量级的解决方案,核心思想是屏蔽,简化 nio 方式的的开发,并不需要过多的学习。

    展开全文
  • 博客:https://blog.csdn.net/u014261855/article/details/109583060 unity c#实现简单前后端socket通信框架 .net dll工程,封装三个工具: 1.服务器 2.客户端 3.通用byte流客户端
  • C# 网络通讯框架 XSockets 框架 XSockets 框架文档末尾有项目源码 中小项目直接引入 dll 就能使用此 xsockets 框架稳定可靠已优化和使用多年可实现各种 复杂连接 Client 端 C Server 端 S Json 为数据传送对象 ...
  • C# socket 框架例程

    2013-05-28 13:30:27
    C# socket 框架历程 本文介绍的EMTASS 2.0 是笔者一段工作的总结,也是学习基于.NET的类设计、组件设计、模式设计等的一个小结。笔者的目标就是不断修改和完善,设计与实现一个可靠与稳定的、有良好可扩展性的和...
  • Android Java Socket框架 Mina2.0

    千次下载 热门讨论 2014-03-08 13:34:29
    Mina2.0框架:客户端Demo,服务器端Demo,根目录下有整理的《Mina2.0学习笔记》
  • SuperSocket框架实现服务器和Winform客户端代码
  • 一个简单的TCP服务器框架,通用性强,上手快,稍作修改即可用于工程
  • go-socket.io go-socket.io是Golang中Socket.IO的实现,Golang是一个实时应用程序框架。 当前,该库支持Socket.IO客户端的1.4版本。 它支持房间和名称空间。 Go 1 go-socket.io go-socket.io是Golang中Socket.IO的...
  • mushroom是一个高性能的跨全平台的socket网络框架。 mushroom支持TCP、UDP通信,让客户端非常容易创建并发网络链接,可以让手机快速创建上万条链接,甚至可以让手机作为服务器,被上万客户端连接。 mushroom还有另外...
  • 打造一款属于自己的go语言socket框架

    千次阅读 2018-09-03 09:27:46
    一直对socket编程有很大的兴趣,经过一周多的努力与查阅资料终于打造一款属于自己的go语言socket框架,觉得应该记录下来,和大家一起学习(本人也是菜鸟要是有什么不对的地方欢迎留言指正)。已经把所有代码整合了,...
  • EasySocket一款轻量级的Android端Socket框架

    万次阅读 热门讨论 2019-06-12 19:46:26
    EasySocket的初衷是希望使Socket编程变得更加简单、快捷,...传统的Socket框架客户端发出一个请求信息,然后服务器返回一个应答信息,但是我们无法识别这个应答信息是对应哪个请求的,而EasySocket实现了将每个请求...
  • 简洁实用Socket框架DotNettySocket

    千次阅读 2019-08-12 15:51:25
    简洁实用Socket框架DotNettySocket 目录 简介 产生背景 使用方式 TcpSocket WebSocket UdpSocket 结尾 简介 DotNettySocket是一个.NET跨平台Socket框架(支持.NET4.5+及.NET Standard2.0+),同时支持...
  • php中的socket框架性能分析 ?php useWorkerman\Worker; require_once./Workerman/Autoloader.php; //创建一个Worker监听2346端口使用websocket协议通讯 $ws_worker=newWorker"websocket://:2346; //启动4个进程对外...
  • SuperSocket(简称:SS)突出:功能丰富、扩展强大。二、FS和SS摆在我们的面前,那么我们应该选择哪一个玩呀?2.1、什么是FastSocket?1)、FS是一个轻量级易扩展的c#异步socket通信库,项目开始于2011年,经过近3年...
  • 11个Java 开源 socket框架

    千次阅读 2018-06-01 13:52:19
    的设计与一般的 nio 框架相比是比较不同的,主要不同点在于读和写都是采用 blocking 方式,并且使用临时 selector;线程模型高度可配置。性能据说比 MINA 还高,但是学习曲线很高。  十一 、 Xscocket   :...
  • 之前写过一个 demo 案例大致讲解了 Socket 通信的过程,并和自建的服务器完成连接和简单的数据通信,详细的内容可以查看 Unity3D —— Socket通信(C#)。但是在实际项目应用的过程中,这个 demo 的实现方式显得异常...
  • HP-Socket通讯框架官方教程
  • Android OkSocket是一款基于JavaNIO和传统Socket的一款Socket客户端整体解决方案.您可以使用它进行简单的基于Tcp协议的Socket通讯,当然,也可以进行大数据量复杂的Socket通讯,支持单工,双工通讯.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 169,594
精华内容 67,837
关键字:

Socket框架