Socket

        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()极为相似。

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





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值