windows网络编程
eagleatustb
学习永远没有终点
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
取得本地IP
对于网络方面的知识需要加强。 1. 取得本地机器名和IP: string tmpLocalIP ; char tmpName[256]; if(gethostname(tmpName,sizeof(tmpName))!=0) { ATLTRACE(_T("gethostbyname() error!!\n")); log_.write(L"can't get原创 2012-09-13 13:52:38 · 1108 阅读 · 0 评论 -
ACE技术使用细节
最近在使用ACE做网络编程工作,写一些在工作中学到的小技巧与深得,循序渐进。1. 在ACE中使用new产生对象的时候,如果无法分配内存直接返回错误,最好使用ACE里已经定义的宏ACE_NEW_RETURN来做内存分配的保护; 代码在OS_Memory.h# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \ do { P原创 2012-09-11 18:09:06 · 1246 阅读 · 0 评论 -
IANA分配的端口列表及本以端口信息获取
IANA(Internet Assigned Numbers Authority)把端口号分为三类:已知的, 已注册的及动态和(或)专用端口.0-1023: 由IANA控制, 为已知服务所保留1024-49151: 由IANA列出的已注册的端口,由普通用户执行的普通用户进程或程序可以使用这些端口.49152-65535: 动态和(或)专用端口.普通用户应用程序应在1024-4915原创 2012-05-13 16:55:40 · 6862 阅读 · 0 评论 -
利用ACE建立连接
最近工作中需要用到ACE去做TCP的数据传输工作,看了《ACE程序员指南》这本书,有点收获。ACE把原来烦琐的socket编程巧妙组合在一起并管理起来,提供面向对象的操作,使程序员(当然是熟悉了socket编程原理并有一定socket基础的)可以忽略中间繁琐的细节步骤,减少出错,提高效率。对于一些网上的评论说ACE把简单的socket编程复杂化,个人认为初学者大可不必理会,因为那都是没用过面向对象原创 2012-08-21 11:55:50 · 1139 阅读 · 0 评论 -
WSAEnumProtocols函数的用法
今天看到《windows网络编程》第二版里面有一个函数, 在第一次按照说明使用的时候没有成功. 以下是对应的技术说明. #include int WSAAPI WSAEnumProtocols ( LPINT lpdwProtocols, LPWSAPROTOCOL_INFO lpProtocolBuffer, LPDWORD lpdwBufferLeng原创 2012-05-11 17:08:23 · 1774 阅读 · 0 评论 -
windows套接字I/O模型之——阻塞模型(1)
Windows套接字可以在两种模式下执行I/O操作:阻塞模式和非阻塞模式。在阻塞模式下,I/O操作完成前,执行操作的Winsock调用(例如send和recv)会一直等候下云,不会立即返回到程序中。 我们现在就来研究一下阻塞模式是怎样工作的。 阻塞模式的socket都遵照一种“生产者-消费者“模型来编制。下面先以一个最简单的server-client代码示例:#in原创 2013-08-13 14:40:20 · 1417 阅读 · 0 评论 -
《windows网络编程》第二版的翻译错误一例
最近在看windows网络编程,因为看的是翻译版本,难免有错误,吐槽一下。如果你正好阅读这本书,可以避免掉进某些我曾经掉进过去的坑里面。翻译错误,很可恶,但也很难免。 因为我看的是扫描版本,先上一段图片,内容在第五章102页,讲述select模式的使用。 从整体意图来看,前面加小黑圆点的语句都是解析select某个参数的条件。再看看我圈出的四个红框,我当时就很疑原创 2013-08-14 10:34:35 · 1227 阅读 · 0 评论 -
windows套接字I/O模型之——select模型
参考《windows网络编程》第五章。为巩固知识,以问题作为驱动,检查知识点。windows下 Select模型1. Select模型有什么作用?可以判断指定套接字上是否有数据存在、是否可以写入数据。防止因为使用send或recv过程引起的阻塞状态。2. Select模型有什么优点?可以减少原有阻塞模型需要使用的多个线程,减少资源消耗。3. S原创 2013-08-14 13:50:55 · 1552 阅读 · 0 评论
分享