
网络--数据传输应用
山西茄子
多媒体工程师,从事ffmpeg,gstreamer,视频编码,deepstream等开发,做做笔记。
展开
-
UDP通信的问题
问题描述: 用UDP通信的时候有这个一个问题,假设有A,B两个进程,B向先A发消息,A收到消息以后,开2个线程,一个向B发消息,一个从B收消息,此时如果关掉B进程,A的接收线程就会不阻塞,错误码为10054。原因:看了很多资料,原来是winsock的bug,具体原因是:http://support.microsoft.com/kb/263823/If sending a原创 2012-11-26 16:34:49 · 1548 阅读 · 0 评论 -
windows网络编程常用
获取本地IPvoid initWinSock(){ static bool wsInit = false; if (! wsInit) { WORD wVersionRequested = MAKEWORD( 2, 0); WSADATA wsaData; if (0 == WSAStartup(wVers转载 2016-05-08 11:13:02 · 387 阅读 · 0 评论 -
SOCKET错误码详解
WSAEINVAL 10022官方解释:The socket has not been bound with bind, or an unknown flag was specified, or MSG_OOB was specified for a socket withSO_OOBINLINE enabled or (for byte stream sockets only)原创 2013-11-27 09:12:32 · 10906 阅读 · 0 评论 -
Windows平台的5种非阻塞Socket编程模型
Windows平台的5种非阻塞Socket编程模型:Select模型(集合管理多个Socket,集合中有64个元素,可以管理1024个socket) Socket通信库所提供的一种异步接收与发送的机制,它是独立于平台的,无论是Linux还是Windows都可以使用。 使用了一个FD_SET变量,将想要“监听”的Socket加入该集合中,调用Selec转载 2013-08-21 16:54:44 · 1507 阅读 · 0 评论 -
select()
函数解析:int select(nfds, readfds, writefds, exceptfds, timeout) 参数1:int nfds; ndfs:select监视的文件句柄数,视进程中打开的文件数而定,一般设为你要监视各文件中的最大文件号加一,在Windows中这个参数的值无所谓,可以设置不正确。 参数2,3,4:fd_set *r原创 2012-09-19 13:01:10 · 1192 阅读 · 0 评论 -
SOCKET设置的参数
SO_REUSEPORT的用法先讲TIME_WAIT的概念。 主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL时间长度,MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒,原创 2013-11-19 10:07:52 · 3503 阅读 · 0 评论 -
socket函数
主要介绍getsockopt(),setsockopt(),ioctlsockopt(),socket错误码。getsockopt()简述: 获取一个套接口选项。 #include <winsock.h> int PASCAL FAR getsockopt( SOCKET s, int level, int optname, char FAR* opt...转载 2012-11-23 14:16:06 · 2123 阅读 · 0 评论 -
xmlrpc笔记
类的结构图如下:数据发送类 XmlRpcDispatchclient,server都用使用此类发送数据。客户端 XmlRpcClient构造函数为: XmlRpcClient(const char* host, int port, const char* uri=0);//参数1为IP,参数2为端口。execute(): bool execute(const char原创 2012-08-09 20:14:54 · 1641 阅读 · 0 评论 -
ICE中间件
ICE中间件的特点1支持多种不同语言之间的通讯程序设计 目前支持的语言有:C++,.NET, Java,Python, Object-c, ruby和 php. 也就是说,通过ICE的标准slice语言规定的接口,再结合slice2XXX(XXX=cpp, java, php…子类)命令的执行,java开发人员就可以很方便的和C++开发人员或者python开发人员,通过一组定好的接口原创 2013-07-02 15:40:51 · 2182 阅读 · 2 评论 -
SOCKET的阻塞与非阻塞
以SOCKET连接的connect()函数为例,如果连接不上,会产生长时间的阻塞。解决方法:可以将SOCKET设置成非阻塞,然后select等待返回结果,等连接上了再设置成阻塞,代码如下: int iMode = 1; ioctlsocket(m_cmdSock, FIONBIO, (u_long FAR*) &iMode); struct timeval timeout;原创 2012-11-23 14:50:29 · 677 阅读 · 0 评论 -
TCP握手
TCP断开的4次握手转载 2018-08-22 14:06:12 · 192 阅读 · 0 评论