最近正在做一个项目 有一个小模块 是做 一个 socket通讯 ,我以前很少做过这方面的工作,不知道自己设计的 c++封装类 是否 合理 。 源代码 后附 我的设计思路是这样的 1.交互协议 首先定义数据传送的格式: typedef struct DataHead{ int MSG; int data_total_length; int data_package_length; }DataHead; 上表达式为数据包头的格式 ,其中内容可以根据需要扩展, int MSG; 为消息的类型。在...
by ring8595 - C/C++ - 2008-03-25 12:24:11 阅读(5839) 回复(5)
初步想法: 封装5个函数: 服务器:socket,accept,write,read,close 客户端:socket,connect,write,read,close 问题1:不知道这样封会不会太简单了 但太复杂了又不好操作 问题2:能否将UDP和TCP封在一起 有没有共用的接收和发送数据函数
封装接收超时函数,一般用什么方法比较好?用setsockopt还是先select再recv? 如果用前者的话,以后调用阻塞方式接收又需要再次setsockopt,而且假设多线程调用接收函数,也会覆盖前一次的效果; 如果是先select再recv,多线程调用的话,我发现一旦有数据可以接收,windows下,会激活两个select,而Suse10下面是激活其中一个select。Suse10下面这种是理想方式,但是windows下面激活了两个,却只有一个recv能接收到数据,另外一个被...
C++实现的socket可以参考gnu的项目sockets,封装的比较好,开源项目,跨平台的,可以在windows,linux,BSD下使用。 http://www.alhem.net/sockets/ 偶下了,觉得不错,可用在Windows下用dev-cpp, VS.net下编译测试
1、 引言 linux的兴起可以说是Internet创造的一个奇迹。linux作为一个完全开放其原代码的免费的自由软件,兼容了各种UNIX标准(如 POSIX、UNIX System V 和 BSD UNIX 等)的多用户、多任务的具有复杂内核的操作系统。在中国,随着Internet的普及,一批主要以高等院校的学生和ISP的技术人员组成的linux爱好 者队伍已经蓬勃成长起来。越来越多的编程爱好者也逐渐酷爱上这个优秀的自由软件。本文介绍了linux下socket的基本概念和函...