原文:基于libuv的TCP设计(一)

本人一直在寻找一个跨平台的网络库,boost与ACE比较庞大,不考虑。对比了libevent,libev,libuv后,最终选择了libuv.可libuv文档少,例子也简单,对于tcp只有个echo server的例子。网上也找过对其封装的例子,如下 libsourcey库,封装了许多库。对libuv的封装跟其他代码耦合比较紧,难为剥离http: sourcey.com libuv cpp wra ...

2014-05-28 17:38 0 5195 推荐指数:

查看详情

基于libuvTCP设计(二)

一、本人设想的TCP服务器有如下特性: 1.启动服务,一直监听端口。 2.有新连接(客户端)就通知用户。并把连接接收到的数据回调给用户。 3.客户端连接上后用户可在任意时间发送数据给它。 4.客户端断开时关闭或用户可手动关掉。 以上操作都可以不同线程在完成。 二、使用libuv ...

Thu May 29 07:47:00 CST 2014 0 9175
基于libuvTCP设计(三)

基于libuvTCP设计(一) 基于libuvTCP设计(二) 一、第二版本的libuv_tcp已经基本可以使用。不会出错与崩溃现象,支持几百路客户端同时连接。可是有一缺陷就占用CPU非常高。因为IDLE阶段一直检测有无数据需要发送,所以当服务器空闲时IDLE会空转,占用CPU ...

Sat Dec 20 23:16:00 CST 2014 0 2324
libuv中实现tcp服务器

目录 1、说明 2、libuvtcp server 3、API简介 3.1、uv_tcp_init 3.2、uv_ip4_addr 3.3、uv_tcp_bind 3.4、uv_listen 3.5 ...

Thu Jan 28 16:29:00 CST 2021 1 1430
libuv 介绍

Cross-platform asynchronous I/O 背景: 特别说明的是libev 中包含了libevent 的内容,而libuv从libev修改而来。 node.js 最初发起于 2009 年, 是一个可以让 Javascript 代码脱离浏览器的执行环境, libuv 使用 ...

Tue Nov 10 06:19:00 CST 2015 0 6824
libuv之介绍

本人是在研究linux下socket TCP/IP通讯时,用到了一些linux下的API,比如socket, connect, bind,listen, accept等等,简单写个点对点的通讯,直接用这些API,再配合Linux下的事件处理机制,或多线程机制,应该都是可以实现的。这里我们就需要考虑 ...

Fri Oct 19 23:00:00 CST 2018 0 5566
TCP程序设计

使用TCP套接字编程可以实现基于TCP/IP协议的面向连接的通信,它分为服务器端和客户端两部分,其主要实现过程如下图所示: TCP客户/服务器的套接字函数 1、socket函数:为了执行网络输入输出,一个进程必须做的第一件事就是调用socket函数获得一个文件描述符 ...

Tue Jul 16 18:05:00 CST 2013 0 3549
Nodejs事件引擎libuv源码剖析之:句柄(handle)结构的设计剖析

声明:本文为原创博文,转载请注明出处。 句柄(handle)代表一种对持有资源的索引,句柄的叫法在window上较多,在unix/linux等系统上大多称之为描述符,为了抽象不同平台的差异,libuv使用统一的结构封装了不同平台的实现,接下来就看看这个抽象的过程。由于句柄 ...

Sun Nov 20 05:06:00 CST 2016 0 2883
TCP协议设计原理

TCP协议设计原理   最近去了解TCP协议,发现这是一个特别值得深思的协议。在本篇博客中,不会长篇大论的给大家介绍TCP协议特点、包头格式以及TCP的连接和断开等基本原理,而是会带大家深入理解为什么要这么设计,如果不这么设计,会产生什么后果 ...

Sun Mar 19 00:39:00 CST 2017 4 3147
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM