Socket API 是网络应用程式研发中实际应用的标准 API。尽管该 API 简单,但是研发新手可能会经历一些常见的问题。本文识别一些最常见的隐患并向您显示如何避免他们。

  在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的研发人员仍然会碰到一些常见的隐患。

  本文识别那些隐患并向您显示如何避开他们。

  隐患 1.忽略返回状态

  第一个隐患很明显,但他是研发新手最容易犯的一个错误。假如您忽略函数的返回状态,当他们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。

  捕获并检查每一个返回状态,而不是忽略他们。考虑清单 1 显示的例子,一个套接字 send 函数。


  清单 1. 忽略 API 函数返回状态
int status, sock, mode;

            

            

/* Create a new stream (TCP) socket */sock =

socket( AF_INET, SOCK_STREAM, 0 );

...status = send( sock, buffer, buflen, MSG_DONTWAIT );

if (status == -1) { /* send failed */ printf( "send failed: %s\n",?

strerror(errno) );

} else { /* send succeeded -- or did it? *

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!