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

2.2 什么是Socket

在前文中可能已经多次提到过Socket这一术语,但究竟什么是Socket呢?首先跃入脑中的恐怕就是电源插座,如图2.4所示。

图2.4 北美洲使用的典型的电源插座

警告:如果知道系统采用的是big-endian字节顺序,但出于可移植性的考虑,仍然应该使用htonl和ntohl这两个函数。因为不好预料什么时候会将程序转换到不同的平台上,使用这两个函数就可以避免许多不必要的麻烦。此外,如果系统本来采用的就是big-endian格式,调用这两个函数也需要额外的系统开销,因为只要是说得过去的编译器,都会忽略函数调用。因此省略了函数调用也并不会提高速度。

如果不是生活在北美洲,则可能不太熟悉这种电源插座,但是你肯定有自己使用的与之相当的东西。将电设备插入到插座中进行连接后,就可以使用它所提供的所有服务,例如供电。

确切地说,有数千种其他插座,例如,电话插座(也称为RJ-11插孔)、以太网插座(也称为RJ-45)等。

网络Socket(套接字)在概念上与此相似,但不像电源插座那样,它们不是真正的物理对象。进行网络编程时,若要连接两台机器,则每一台机器都要创建一个套接字,然后一台机器才能连接到另一台机器。图2.5展示了包括3台机器(从计算机1连接到计算机2,从计算机3连接到计算机2)的一个简单的套接字网络。

深入研究实际的套接字编码之前,先介绍几种不同“类型”的套接字。在这里将“类型”这个词加上引号是有原因的,稍后讲到代码范例时大家就会明白这一点。

图2.5 包括3台机器的简单网络连接

查看所有评论(0)条】

最近评论



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