Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux程序设计 ->正文

Linux系统套接字编程中存在的五个隐患

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

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? *

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:锋线上的冲杀——论Linux数据库大比拚   下一篇:内核技术:TCP/IP编程实现远程文件传输

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章