网络编程基础篇.pdfVIP

  • 5
  • 0
  • 约1.39万字
  • 约 52页
  • 2017-12-21 发布于浙江
  • 举报
网络编程基础篇

网络编程 概 述 顾维灏 BAIDU CONFIDENTIAL 2 0 0 5 主要内容 • 通信程序设计的丰富性 • 传输层概述 • 编写网络程序的基本过程及其问题 • ULIB网络函数 BAIDU CONFIDENTIAL 2 0 0 5 通信程序设计的丰富性 TCP/IP编程具有较为丰富的内容,其编 程的丰富性主要体现: 通信方式 报文处理 BAIDU CONFIDENTIAL 2 0 0 5 通信方式 1. SERVER/CLIENT方式 • 一个Client连接一个Server • 多个Client连接一个Server,这也是通 常的并发服务器。 • 一个Client连接多个Server,多是同步 数据使用。 BAIDU CONFIDENTIAL 2 0 0 5 2. 连接方式 • 长连接 Client与Server方先建立通讯连接,连 接建立后不断开, 然后再进行报文发 送和接收。这种方式通讯连接一直存在。 可以通过netstat命令进行观察连接是否 在保持:netstat –an | grep 端口号。 例如平时与webinfodb 间的连接。 BAIDU CONFIDENTIAL 2 0 0 5 • 短连接 Client与Server每进行一次报文收发交易 时才进行通讯连接,交易完毕后立即断 开连接。此种方式常用于一点对多点通 讯,比如多个Client连接一个Server. 例如http的短连接请求方式。 BAIDU CONFIDENTIAL 2 0 0 5 3. 发送接收方式 • 同步 报文发送和接收是同步进行,既报文发 送后等待接收返回报文。 同步方式一般需要考虑超时问题,即报 文发上去后不能无限等待,需要设定超 时时间,超过该时间发送方不再等待读 返回报文,直接通知超时返回。 BAIDU CONFIDENTIAL 2 0 0 5 • 异步 报文发送和接收是分开的,相互独立 的,互不影响。 在mp3死链检查中使用的就是这种方式 。 BAIDU CONFIDENTIAL 2 0 0 5 报文处理 1. 阻塞与非阻塞方式 • 非阻塞方式 如果没有报文接收到,等待一段时间后 超时返回,这种情况一般需要指定超时 时间;或者直接返回。 • 阻塞方式 如果没有报文接收到,则读函数一直处 于等待状态,直到有报文到达。 BAIDU CONFIDENTIAL 2 0 0 5 2. 读写方式 • 一次直接读写报文 在一次接收或发送报文动作中一次性不加分别 地全部读取或全部发送报文字节。 • 不指定长度循环读写 这一般发生在短连接进程中,受网络路由等限 制,一次较长的报文可能在网络传输过程中被 分解成了好几个包。一次读取可

文档评论(0)

1亿VIP精品文档

相关文档