摘要: 在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于当时觉得用起来很方便,也没出啥问题,也就没有再深究。 但是最近在做RTSP服务器的时候,有种特殊的应用,导致我不得不对bind这个函数仔细地看一下。 我们知道无论是UDP还是TCP,socket都.. 阅读全文
posted @ 2012-12-18 15:45 藤原*拓海 阅读(268) 评论(0) 推荐(0) 编辑
摘要: Coinitialize 参数为保留参数,必须为NULLCoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。 返回值S_OK : 该线程中COM库初始化成功S_FALSE 该线程中COM库已经被初始化 CoInitialize () 标明以单线程方式创建。 使用 CoInitialize 创建可以使对象直接与线程连接,得到最高的性能。 CoInitialize并不装载COM 库,它只用来初始化当前线程使用什么样的套间。使用这个函数后,线... 阅读全文
posted @ 2012-12-18 15:06 藤原*拓海 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: setsockopt设置socket状态1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2.如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BOOL bDontLinger = FALSE;setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const c 阅读全文
posted @ 2012-12-18 14:53 藤原*拓海 阅读(201) 评论(0) 推荐(0) 编辑
摘要: VC:CString用法整理(转载)1.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。说明:此成员函数用来测试一个CString 对象是否是空的。示例:下面的例子说明了如何使用CString::IsEmpty。// CString::IsEmpty 示例CString s;ASSERT( s.IsEmpty() );请参阅 CString::GetLength2.CString::LeftCString Left( int nCount ) const;throw( CMemoryExcepti 阅读全文
posted @ 2012-12-18 11:59 藤原*拓海 阅读(168) 评论(0) 推荐(0) 编辑
摘要: (一) 先讲一下XML中的物殊字符,手动填写时注意一下。字符 字符实体& &amp;或&#38;#38;' &apos;或&#39;> &gt;或&#62;< &lt;或&#38;&#60;" &quot;或&#34;(二) CMarkup类的源代码。这是目前的最新版本;这是官网示例文件,取出里面的Markup.cpp和Markup.h,导入你的工程里面,CMarkup类就可以用了;下载地址:http://www.firstobject.com/Markup112.zi 阅读全文
posted @ 2012-12-18 09:24 藤原*拓海 阅读(363) 评论(0) 推荐(0) 编辑