首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.3.2 Socket API错误

在UNIX操作系统中,所有套接字都是文件。操作系统并不能区分套接字和文件,因此可以对二者使用相同的读写函数。

由此,只要发生了套接字错误,就用错误值来设置全局变量errno。

遗憾的是,Windows采用了与UNIX操作系统完全不同的方法,Windows将套接字和文件作为单独的实体来看待。而更慒糕的是,Windows的Winsock与errno错误报告系统并不兼容。因此,只要产生了错误,就必须使用WSAGetLastError()函数来检索错误,但是不必担心,二者返回的错误值是相同的。

使用#defines也可以解决这一冲突,具体方法将在第4章中讲述,另外还会介绍如何将Socket API抽象到一个包装器(wrapper)中。

附录B(在光盘中)完整地列出了所有的错误代码和它们的含义。虽然力图列出本章中每个套接字函数可能的每个错误,但还是应该注意到在基本网络子系统中也可能发生其他套接字错误。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论