2013-04-26 236 views
2

我不知道什么插座意味着什么。 服务器在特定计算机上运行,​​并具有绑定到特定端口号的套接字。服务器只是在等待,监听客户端的套接字以发出连接请求。 当服务器接受连接时,它会获得绑定到同一本地端口的新套接字,并且其远程端点将设置为客户端的地址和端口。 它需要一个新的套接字,以便它可以继续侦听原始套接字的连接请求,同时趋向于连接的客户端的需要。究竟是什么插座

那么,套接字是在内存中创建的一些类?对于每一个客户端连接,都会在内存中创建这个类的新实例?内部套接字写入连接的客户端的本地端口和端口以及IP编号。有人可以更详细地解释我的socket的定义吗?

由于

+0

我想你已经得到了...... – stdcall 2013-04-26 09:36:56

+1

请检查http://stackoverflow.com/faq#questions – gprathour 2013-04-27 06:46:42

回答

8

套接字有效是一种类型的文件句柄的,它的后面可以躺在的网络会话。

您可以像读取任何其他文件句柄一样对其进行读写(大部分),并将数据发送到并来自会话的另一端。

您描述的具体操作是针对套接字的服务器端。服务器建立(绑定)可用于接受传入连接的套接字。一旦接受,你会得到另一个套接字用于已建立的会话,以便服务器可以返回并在原始套接字上侦听更多传入连接。

它们在内存中的表现方式取决于您的抽象级别。

在C的最低级别,它们只是文件描述符,一个小整数。但是,您可能有更高级的Socket,它封装了低级套接字的行为。

+0

说'它背后是网络会话的*端点*'会更准确。 – EJP 2013-04-26 09:54:36

0

据 “TCP/IP套接字C-实用指南程序员在” 由Michael J. Doonahoo &肯尼斯L.卡尔弗特(Chptr 1,第1.4节,第7页):

套接字是一个应用程序可以通过该接口发送和接收数据,这与开放文件允许应用程序读写数据以稳定存储的方式大致相同。 套接字允许应用程序“插入”网络,并与其他也插入同一网络的应用程序进行通信 。 由一台机器上的应用程序写入套接字的信息可以是由另一台机器上的应用程序读取的 ,反之亦然。

请参阅此书以从程序员角度了解套接字的清晰度。