Socket

来源:互联网 发布:网络电视转换数字电视 编辑:程序博客网 时间:2024/05/22 04:29

        Socket是操作系统中I/O系统的延伸部分,它可以使进程和机器之间的通信成为能。当前经常使用的socket,最早起源于BSD UNIX类的操作系统。比如BSD,有一些现有的,和文件描述述一起工作的系统调用,其中包括open(),read(),write()和close().文件描述符一般是指一个文件或某个类似文件的实体。

    把对网络的支持加入操作系统,是以一种扩展现有文件描述符结构的方法来实的。新的系统调用被加入并和socket一起工作,而很多现有的系统调用同样能和socket一起工作。因此,一个socket允许您使用标准的操作系统和其它计算机,以及您自己机器上的不同进程来通信。

     在某些方面,socket可以被看成一个标准的文件描述符。在UNIX类平上,read()、write()、dup()、close()这样的系统调用会像为标准文件描述符那样为socket工作。很多时候,程序并不需要知道它正把数据宇一个文件、终端或是一个TCP连接。

    然而,socket的确存在一些不同的工作方式。最明显地就是建立socket的方法。很多文件通过调用open()函数打开,但socket是通过调用socket()函数来建立的,并且还需要别外的调用来连接和激活它们。recv()和send()这两个系统调用和read()和write()极为相似。

    你可以把套接字连接想像为打电话进一个繁忙的办公大楼。一个电话打到一家公司,接线员接听电话并把它转到正确的部门(服务器进程),然后再从那里转到电话要找的人(服务器套接字)。每个进入的电话呼叫(客户)都被转转到正确的终端节点,而中间介入的接线员则可以空出来处理后续的电话。





原创粉丝点击