什么是socket?
2011-06-29 08:39
204 查看
什么是socket? 你经常听到人们谈论着“socket”,或许你还不知道它的确切含义。现在让我告诉你:它是使用标准Unix文件描述符(filedescriptor)和其它程序通讯的方式。什么?你也许听到一些Unix高手(hacker)这样说过:“呀,Unix中的一切就是文件!”那个家伙也许正在说到一个事实:Unix程序在执行任何形式的I/O的时候,程序是在读或者写一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数。但是(注意后面的话),这个文件可能是一个网络连接,FIFO,管道,终端,磁盘上的文件或者什么其它的东西。Unix中所有的东西就是文件!所以,你想和Internet上别的程序通讯的时候,你将要使用到文件描述符。你必须理解刚才的话。现在你脑海中或许冒出这样的念头:“那么我从哪里得到网络通讯的文件描述符呢?”,这个问题无论如何我都要回答:你利用系统调用socket(),它返回套接字描述符(socketdescriptor),然后你再通过它来进行send()和recv()调用。“但是...”,你可能有很大的疑惑,“如果它是个文件描述符,那么为什么不用一般调用read()和write()来进行套接字通讯?”简单的答案是:“你可以使用!”。详细的答案是:“你可以,但是使用send()和recv()让你更好的控制数据传输。”存在这样一个情况:在我们的世界上,有很多种套接字。有DARPAInternet地址(Internet套接字),本地节点的路径名(Unix套接字),CCITTX.25地址(你可以将X.25套接字完全忽略)。
相关文章推荐
- 面试可能遇到这样的问题 TCP HTTP SOCKET之间的有什么关系
- 通过什么来衡量C# Socket服务的效能
- (转贴)什么是socket
- Socket具体有什么用途?和P2P有什么区别
- Linux内核协议栈(附4) accept得到新的socket的本端端口号是什么?
- (转)什么是套接字(Socket)?
- java网络编程中Socket什么意思?怎么工作的?
- Socket是什么呢?中间软件抽象层
- socket编程中的memset函数的作用是什么
- socket在php主要是什么作用?用在哪些方面?
- socket的fd是什么?fd是啥的缩写?
- 通过什么来衡量C# Socket服务的效能
- C/C++ socket编程教程之一:socket是什么
- 使用Socket时的阻塞工作方式和非阻塞工作方式有什么区别
- 什么是 socket 编程
- Java socket中关闭IO流后,发生什么事?(以关闭输出流为例)
- socket是什么?
- socket 客户端在什么情况下需要bind
- socket编程到底是什么
- 网络socket编程中UDP和TCP一般用在什么地方?