大家在进行iOS开发的时候一定会用到网络操作.但由于早期原生的 NSURLConnection 操作起来有很多不便,使得大家更愿意使用第三方库的解决方案,比如鼎鼎大名的 AFNetworking.正是因为这点,苹果团队为开发者提供了改进后的原生网络库支持,也就是 NSURLSession. NSURLSession 简介 NSURLSession 是苹果为我们提供的一套新的网络处理库.它的前身是 NSURLConnection,但由于 NSURLConnection 提供的接口使用起来不够简洁,…
1.为什么需要动态库 a)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. b)某些开源库是c/cpp编写,没有对应c#版本 c)或者有c#版本实现,但是效率或者gc达不到期望效果,特别是GC,一般的开源库c#版本的作者,对gc优化得大多不好 d)追求效率,比如A*寻路等开销比较大的算法,想做下优化 e)某些模块,如网络模块,需要Unity客户端和后端跑一份相同的逻辑代码,而不想…
简洁易用的C++11网络库,From:https://github.com/yedf/handy 在整理过去的资料过程中,发现过去有关注过这一个网络库,简单看了一下属于轻量级的实现,因此本文将对该库进行简单的学习之旅,目标是对网络基础知识进一步巩固. 编译和运行 库目前实现了linux和mac环境,需要支持C++11因此gcc的版本要大于4.8,在我的虚拟机ubuntu12.04是要升级gcc版本,然后使用云centos 7,之前安装的cmake版本是2.8.12,与要求的版本大于3.2不匹配,…
进程 线程 协程 异步 并发编程(不是并行)目前有四种方式:多进程.多线程.协程和异步. 多进程编程在python中有类似C的os.fork,更高层封装的有multiprocessing标准库 多线程编程python中有Thread和threading 异步编程在linux下主+要有三种实现select,poll,epoll 协程在python中通常会说到yield,关于协程的库主要有greenlet,stackless,gevent,eventlet等实现. 进程 不共享任何状态 调度由操作系…
前言 muduo库是陈硕个人开发的tcp网络编程库,支持Reactor模型,推荐大家阅读陈硕写的<Linux多线程服务端编程:使用muduo C++网络库>.本人前段时间出于个人学习.找工作的目的用C++11重构了muduo库中核心的Reactor架构.这篇博文对muduo库中的Multi-Reactor架构代码进行逻辑梳理,同时认真剖析了作者每一处精妙的代码设计思想.目前我只重构并剖析了muduo库中的核心部分,即Multi-Reactor架构部分,具体细分有以下几个模块: 网络相关模块:如…
<Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错的成绩.本书购买方式见配套网站 http://chenshuo.com/book . 以下谈一谈这本书的写作背景与内容取舍的原因. 参加工作以来,我编写并维护了若干C++/Java多线程网络服务程序,这本书总结了我在开发维护这类服务程序方面的经验.工作中,我没有写过单线程的网络服务程序,没有写过C语言的网络服…
Joynet 项目地址:https://github.com/IronsDu/Joynet 介绍 high performance network library for lua, based on https://github.com/IronsDu/accumulation-dev and lua coroutine. Joynet 的网络底层使用多线程,但Lua (层面)是运行在单线程上. 借助协程提供同步形式的API.(同步的socket api,同步的http api,同步的redis…
Poco::Net库中有 FTPClient HTML HTTP HTTPClient HTTPServer ICMP Logging Mail Messages NetCore NTP OAuth Reactor Sockets DatagramSocket DatagramSocketImpl DialogSocket MulticastSocket RawSocket RawSocketImpl ServerSocket ServerSocketImpl Socket SocketImpl…
曾几何时,Boost中有一个Socket库,但后来没有了下文,C++社区一直在翘首盼望一个标准网络库的出现,网络上开源的网络库也有不少,例如Apache Portable Runtime就是比较著名的一个,也有像ACE这样重量级的网络框架.去年,Boost将ASIO纳入了自己的体系,由于Boost的影响力,ASIO有机会成为标准网络库.作者Chris Kohlhoff以ASIO为样本向C++标准委员会提交了一个网络库建议书,里面提到:ASIO的覆盖范围: Networking using TC…
在开源的C/C++网络库中, 常用的就那么几个, 在业界知名度最高的, 应该是ACE了, 不过是个重量级的大家伙, 轻量级的有libevent, libev, 还有 Boost的ASIO. ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层,使用的时候, 要根据情况,看你从那一层来进行使用.支持跨平台. Boost的ASIO是一个异步IO库,封装了对Socket的常用操作,简化了基于socket程序的开发.支持跨平台. libevent是一个C语言写的网络…