多线程网络通信
文章平均质量分 58
scq2099yt
欢迎访问我的个人网站: http://www.joyvc.cn。
展开
-
异步Socket通信
异步Socket通信,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:38:00 · 2033 阅读 · 0 评论 -
SIP与RTP综合应用1
SIP与RTP综合应用1,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:20:00 · 2215 阅读 · 0 评论 -
jrtplib+p2p实验结果
jrtplib+p2p实验结果,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:18:00 · 2333 阅读 · 0 评论 -
UDP分包重组算法 1
UDP分包重组算法 1,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 17:14:00 · 964 阅读 · 0 评论 -
Windows Socket 网络编程(一) —— TCP/IP体系结构、特点及相关术语
一、TCP/IP 体系结构与特点1、TCP/IP体系结构TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:(结构如图1.1)(图1.1) IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。转载 2009-02-24 12:55:00 · 2838 阅读 · 6 评论 -
从一次Windows网络编程排错经历中得出的一个可靠拆包算法
作者:朱金灿来源:http://blog.csdn.net/clever101 前段时间,维护一个网络程序。客户反映我们的系统有时接收不到来自任务管理系统的socket字符串,存在丢失数据的问题。我看了一下代码(代码是别人写的),发现系统的代码写得有问题。原来系统的代码是开辟一个大的接收缓冲区,试图一下把整个数据包接收过来。实际上接收网络数据包面临一个拆包的问题,可靠的拆包的方式转载 2009-02-24 12:26:00 · 856 阅读 · 0 评论 -
封包和拆包
对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是转载 2009-02-24 12:48:00 · 1752 阅读 · 1 评论 -
网络字节序与主机字节序
原文出处:http://blog.chinaunix.net/u/13279/showart.php?id=177436网络字节序与主机字节序jobedward.cublog.cn 2006-09-27 16:36:18网络字节序与主机字节序不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1. Little endian:将低序字节存储在起始地址2转载 2009-02-24 12:07:00 · 1925 阅读 · 0 评论 -
关于ACE.DLL : fatal error LNK1136: invalid or corrupt file问题的解决
当您编译连接ACE程序时出现:ACE.DLL : fatal error LNK1136: invalid or corrupt file错误时,一般都是应为ACE环境设置不正确,按照如下方法设置即可解决该问题:加入你的ACE5.5代码放在C:/ACE_wrappers。 1、工程-设置-C/C++: Preprocessor,附加包含路径:C:/ACE_wrappers 2、工程-设置-C/C+原创 2008-07-03 15:28:00 · 2469 阅读 · 0 评论 -
C++网络开发包ACE环境的配置与调试
http://dev.21tx.com/2004/04/30/10354.htmlACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。我的系统环境是:Win2k pro(sp4)、VC原创 2008-07-02 17:56:00 · 825 阅读 · 0 评论 -
P2P之UDP穿透NAT的原理与实现(附源代码)
P2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars 参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NA转载 2008-07-03 14:35:00 · 785 阅读 · 0 评论 -
SIP与RTP综合应用4
SIP与RTP综合应用4,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:25:00 · 2202 阅读 · 0 评论 -
用协议分析工具学习TCP/IP
用协议分析工具学习TCP/IP,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:32:00 · 1841 阅读 · 0 评论 -
Socket中如何设置连接超时
Socket中如何设置连接超时,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:40:00 · 2281 阅读 · 0 评论 -
封包和拆包
封包和拆包,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:35:00 · 2094 阅读 · 0 评论 -
解决TCP网络传输“粘包”问题
解决TCP网络传输“粘包”问题,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:34:00 · 1790 阅读 · 0 评论 -
SIP与RTP综合应用5-RTP解包过程
SIP与RTP综合应用5-RTP解包过程,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:26:00 · 2203 阅读 · 0 评论 -
Socket中的TIME_WAIT状态
Socket中的TIME_WAIT状态,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:49:00 · 2190 阅读 · 0 评论 -
可靠UDP例子 RMCast的程序结构说明
可靠UDP例子 RMCast的程序结构说明,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:06:00 · 1984 阅读 · 0 评论 -
TCP短连接与长连接
TCP短连接与长连接,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:30:00 · 1857 阅读 · 0 评论 -
SIP与RTP综合应用3
SIP与RTP综合应用3,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:24:00 · 2066 阅读 · 0 评论 -
SIP与RTP综合应用2
SIP与RTP综合应用2,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:24:00 · 2356 阅读 · 0 评论 -
jrtplib 分包处理
jrtplib 分包处理,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:17:00 · 2186 阅读 · 1 评论 -
可靠UDP源码
可靠UDP源码,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 18:09:00 · 2091 阅读 · 0 评论 -
UDP分包重组算法2
UDP分包重组算法2,更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn转载 2010-07-14 17:12:00 · 1375 阅读 · 0 评论 -
ACE的构建(VC++6.0环境)
http://hi.baidu.com/minyuanyang/blog/item/9c3db96e7e38f2db80cb4a82.htmlACE的构建(VC++6.0环境) Windows下ACE的构建 1. 将ACE-5.5.zip解压到所需的安装目录,此处以E:/为例,解压后形成ACE_wrappers文件夹,因此ACE将会存在于ACE_wrappers/ace目录中。ACE_RO原创 2008-07-02 17:52:00 · 1006 阅读 · 0 评论 -
在局域网内实现图像的实时传输
作者:bat603网址:http://blog.csdn.net/bat603/(本文可以随意转载及修改并可用于任何用处,但须注明作者和网址)在局域网内实现图像的实时传输(实现环境bcb6.0+MSSQL) 本来要去睡觉的,但是为了整理一下该文档,还是坐在了电脑旁。明天睡个大头觉。 之所以使用bcb6.0,是因为用它开发速度快。但是一个前辈曾经给我说过,bcb转载 2008-07-03 14:33:00 · 939 阅读 · 0 评论 -
linux下非阻塞的tcp研究
tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据.在阻塞模式下, send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送缓存的存在,表现为:如果发送缓存大小比请求发送的大 小要大,那么send函数立即返回,同时向网络中发送数据;否则,send向网络发送缓存中不能容纳的那转载 2008-03-11 16:36:00 · 799 阅读 · 0 评论 -
如何应用TCP/IP的套接字开发网络通信应用程序
进入九十年代后,随着计算机和网络技术的发展,很多数据处理系统都采用开放系统结构的客户机/服务器网络模式,即客户机提出任务请求,通过网络发送给服务器,由服务器做相应处理,执行被请求的任务,然后将结果返回给客户机。例如:银行ATM的前置机和数据处理的主机之间即构成客户机/服务器网络模式;电话银行的前置机和银行数据处理机之间也构成这种网络模式结构等。这样,如何在前置机和数据主机之间进行信息交转载 2008-03-11 16:39:00 · 1468 阅读 · 0 评论 -
TCP服务器/客户端
TCP客户端源程序 #include #include #pragma comment(lib, "WS2_32.lib") #define BUF_SIZE 1024 #define SERVER_IP "127.0.0.1" #define SERVER_PORT 5678 int main(int argc, cha原创 2008-03-01 11:11:00 · 704 阅读 · 0 评论 -
UDP服务器/客户端
UDP客户端源程序 #include #include #pragma comment(lib, "WS2_32.lib") #define BUF_SIZE 1024 #define SERVER_IP "127.0.0.1" #define SERVER_PORT 5678 int main(int argc, cha原创 2008-03-01 11:13:00 · 662 阅读 · 0 评论 -
关于TCP服务器端与客户端数据发送的问题
当TCP服务器端关闭时,客户端发送数据给服务器端,此时数据发送不出去,尽管在程序中可以看到发送缓存buffer内已经有数据了,但是协议并没有发送,发送缓存有数据只能说明已经将数据拷贝到缓存了,具体发送出去了没有由协议决定,由于服务器端关闭,所以协议不可能发送成功。可以用Iris网络抓包工具进行验证,此时的数据为空。 更多技术文章请参看施昌权的个人网站: http://www.joy原创 2008-02-28 15:40:00 · 1246 阅读 · 0 评论 -
Run-time error '10054':The connection is reset by remote side的处理
当用VB的WINSOCK控件进行UDP网络开发时,如果发送端的RemoteHost设置成本机IP,则会出现Run-time error 10054:The connection is reset by remote side的错误,改成其他IP地址即可解决。 更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn原创 2008-02-26 16:03:00 · 2305 阅读 · 0 评论 -
关于Iris网络流量分析监测工具对本地TCP无法抓包的问题
关于用Iris网络流量分析监测工具,对本地TCP进行监听,无法抓包。因为该工具的原理是对网卡进行监测,而本地TCP通信没有经过网卡,故无法抓包。另外,当以字符串形式发送数据时,监测到的数据包长度是0。这是个人意见,期待研究得透测的人发表高见。 更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn原创 2008-02-27 15:06:00 · 981 阅读 · 0 评论 -
关于阻塞、非阻塞、异步、同步
阻塞: 比如:recv()这个函数就是阻塞函数,只有读到数据了才会返回; 还有accept()这个函数也是阻塞函数,只有客户端连接上来了才会返回,不然整个程序都停留在accept出现的地方阻塞着,一直等着有客户端连接上来accept返回后才继续执行下去。 非阻塞就是和上面相反的意思。 同步也就是和阻塞差不多的意思,当然还有线程里的同步又是另外一个意原创 2008-02-01 10:06:00 · 669 阅读 · 0 评论 -
error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'
error C2664: CreateThread : cannot convert parameter 3 from unsigned long (void *) to unsigned long (__stdcall *)(void *) 开发平台:VC6.0错误原因:类成员函数作为线程函数时,必须是静态成员函数。 解决办法:static DWORD WINA原创 2008-02-01 10:16:00 · 2026 阅读 · 0 评论 -
关于TCP的Ack(应用层和底层协议)
当用TCP/IP协议进行通信时,在发送端,send首先会将数据copy到协议的缓存区,然后协议会将数据发送到接收端,接着会等待接收端协议收到数据的ack,如果没有收到ack,协议就会重发数据,在这一过程中send一直在等待,直到收到ack,当协议收到ack后才将协议缓存中的数据删除,因此从协议上来说是不会丢失数据的。 但是协议没有丢失数据并不能保证接收端应用程序就一原创 2008-02-01 10:10:00 · 1648 阅读 · 0 评论 -
多线程函数和静态线程函数调用类成员非静态变量和函数的问题
创建线程时,线程函数如果要设置成类的成员函数,则必须是静态成员函数,在此函数种不能使用非静态成员变量,如果要使用非静态成员变量,则一种比较适合线程的方法是:建立线程的时候把this作为CreateThread的一个参数(即第4个参数,就是那个LPVOID型的),然后线程里就对应pParam,例如: static UINT ThreadProc(LPVOID pParam) {原创 2008-02-01 10:04:00 · 1341 阅读 · 0 评论 -
阻塞套接字与非阻塞套接字
每一个TCP套接口有一个发送缓冲区,可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用进程调用write时,内核从应用进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用进程的缓冲区大于套接口发送缓冲区,或是套接口发送缓冲区还有其他数据),应用进程将被挂起(睡眠)。这里假设套接口是阻塞的,这是通常的缺省设置。内核将不从write系统转载 2008-03-11 16:37:00 · 1021 阅读 · 0 评论 -
linux socket 编程
目 录 socket() bind() connect() listen() accept() send() 和recv() sendto() 和recvfrom() close() 和shutdown() getpeername() gethostname() socket [目录]socket转载 2008-03-11 16:40:00 · 583 阅读 · 0 评论