当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

xs

C 多线程网络库
授权协议 LGPL
开发语言 C/C++
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 国产
投 递 者 范嘉
操作系统 Windows
开源组织
适用人群 未知
 软件概览

基于C多线程网络库,欢迎大家使用,例子在代码example目录下,以后我会再增加一些例子。

文档暂时没有,有问题请邮件我:-)

获取代码:https://github.com/xueguoliang/xs

xs致力于1)多线程网络库,如果你的程序要需要网络通信,而且不希望多进程,那这个库可能适合你。目前xs支持linux和windows,linux采用epoll,windows下是select,不好意思对iocp不熟悉,期待你们有贡献。

2)尽量将接口整的简单

3)线程工作采用推动式

4)支持定时器(用最小堆实现)

5)尽量效率高,所以尽量不用锁

使用库的方法,跟android有点像:

1.在xs/src中建立一个目录,你的工程目录,比如aaa

2.在目录中写一个xs.mk(空文件即可,但是没有是不行的)

3.再写你的.c文件,

4.完成之后,回到xs/src,输入make,你的工程将会被编译,如果你的代码没有编译错误,将会在xs/src目录下出现aaa.bin

另外一种办法,你将xs库当成普通动态库使用,这样的话,你的某个.c文件要加上两个全局变量

char* g_mem_files[1];

int g_mem_file_count = 0;

这两个变量是我的Makefile生成的,如果你不用我的makefile,那就得自己给定义个

最后这个库我在linux,windows,android,嵌入式linux等平台下都测试过,稍微改改makefile(在windows下直接用qt编译的)就可以使用,记得mail我哦

 相关资料
  • 5.4.2.网络和多线程 有了用户界面,接下来就应该考虑用户与服务端交互的实现方法了。在此,我们引入一个三方库来帮助我们访问 Twitter 的 API 服务。 在网络调用执行中,我们会发现界面响应不灵,这是因为网络操作是不可预知的。毕竟不能让网络操作把我们的界面卡死,因此我们在这里引入Android中的多线程机制,避免不必要的外部阻塞。

  • 摘要 本文描述了使用 QEMU 运行 RT-Thread 提供的基于多线程的非阻塞 socket 编程示例。 简介 随着物联网的发展,越来越多产品需要基于网络进行数据传输。在实际开发中,往往要求网络传输时不能阻塞当前线程,以致无法及时处理其他消息。在用户无法直接套用简单的 socket demo 时,RT-Thread 提供基于多线程的非阻塞 socket 编程示例,方便用户进行应用程序开发。 在

  • 好的,我想用python编程一个服务器。因此,我打开一个套接字,等待输入。当我得到一个输入,我得到一个进一步的套接字和地址。 因为我想同时实现多个连接,所以我研究了Python中的多线程。 我使用以下方法创建线程: 我的输入法如下: 现在,如果以这种方式,我得到下面的堆栈跟踪: 线程1中的异常: 回溯(最近的最后一次调用):文件“/usr/lib/python3.8/threading.py”,第

  • 本文向大家介绍Android实现网络多线程文件下载,包括了Android实现网络多线程文件下载的使用技巧和注意事项,需要的朋友参考一下 实现原理 (1)首先获得下载文件的长度,然后设置本地文件的长度。 (2)根据文件长度和线程数计算每条线程下载的数据长度和下载位置。 如:文件的长度为6M,线程数为3,那么,每条线程下载的数据长度为2M,每条线程开始下载的位置如下图所示: (网上找的图) 例如10M

  • 导语 在前面的几节内容中讲解了Qt网络编程的一些基本内容,这一节来看一下在Qt中进程和线程的基本应用。 环境:Windows Xp + Qt 4.8.5+Qt Creator2.8.0 目录 一、进程 二、线程 正文 一、进程 在设计一个应用程序时,有时不希望将一个不太相关的功能集成到程序中,或者是因为该功能与当前设计的应用程序联系不大,或者是因为该功能已经可以使用现成的程序很好的实现了,这时就可

  • 本文向大家介绍Android使用多线程进行网络聊天室通信,包括了Android使用多线程进行网络聊天室通信的使用技巧和注意事项,需要的朋友参考一下 TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信了。Java对基于TCP协议的网络通信提供了良好的封装,Java使用So

  • 网络基础 在互联网上之间的通信交流,一般是基于 TCP (Transmission Control Protocol,传输控制协议) 或者 UDP (User Datagram Protocol,用户数据报协议) ,如下图: 编写 Java 应用,我们只需关注于应用层 (application layer),而不用关心 TCP 和 UDP 所在的传输层是如何实现的。java.net 包含了你编程所

  • 1. 网络编程概述 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了。 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。网络编程就是如何在程序中实现两台计算机的通信。 举个例子,当你使用浏览器访问新浪网时,你的计算机就和新浪的某台服务器通过互联网连接起来了,然后,新浪的服务器把网页内容作为数据通过互联网传输到你的电脑上。 由于你的电脑上可能不止浏览器,