一个套接字可以这样来解释:它是通过标准的UNIX 文件描述符和其他的程序通讯的一个方法。
使用UNIX 的黑客高手有这么一句话:“恩,在UNIX 系统中,任何东西都是一个文件。”这句话描述了这样一个事实:在UNIX 系统中,任何对I/O 的操作,都是通过读或写一个文件描述符来实现的。
一个文件描述符只是一个简单的整形数值,代表一个被打开的文件(这里的文件是广义的文件,并不只代表不同的磁盘文件,它可以代表一个网络上的连接,一个先进先出队列,一个终端显示屏幕,以及其他的一切)。在UNIX 系统中任何东西都是一个文件!!所以如果你想通过Internet 和另外一个程序通讯的话,你将会是通过一个文件来描述符实现的。你最好相信这一点。
套接字有三种类型:流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM)及原始套接字。
1.流式套接字
可以提供可靠的、面向连接的通讯流。
2.数据报套接字(SOCK_DGRAM)
数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。原始套接字允许对低层协议如IP 或ICMP 直接访问,主要用于新的网络协议实现的测试等。
无连接服务器一般都是面向事务处理的,一个请求一个应答就完成了客户程序与服务
程序之间的相互作用。
分享到:
相关推荐
Berkeley套接字应用程序接口(API)包括了一个用C语言写成的应用程序开发库,主要用于实现进程间通讯,在计算机网络通讯方面被广泛使用。 Berkeley套接字(也作BSD套接字应用程序接口)刚开始是4.2BSD Unix操作系统...
第六章 Berkeley 套接字; 第七章网络安全; 第八章 Ping 例; 第九章 tftp 例程; 第十章远程命令执行; 第十一章远程注; 第十二章远程过程调; 第十三章远程磁带的访问; 第十四章 WWW 上HTTP 协
第六章 Berkeley 套接字............ 136 6.1 引言......... 136 6.2 概述......... 136 6.2.1 Socket 的历史..... 136 6.2.2 Socket 的功能..... 136 6.2.3 套接字的三种类型............. 138 6.3 Linux 支配的...
building-ha-scalable-applications-with-berkeley-db-whitepaper
这样做的结果就出现了插口接口(Berkeley Socket),这个系统被称为Berkeley UNIX 或BSD UNIX。(TCP/IP 首次出现在BSD 4.1 版本release 4.1 of Berkeley Software Distribution)。 由许多计算机厂商,都采用了...
Java-Edition-BerkeleyDB-3.1.0,国外的开源数据库,供大家参考
UC-Berkeley Data Warehouse Architecture
第六章 Berkeley 套接字 第七章 网络安全性 第八章 Ping 例程 第九章 tftp 例程 第十章 远程命令执行 第十一章 远程注册 第十二章 远程过程调用 第十三章 远程磁带的访问 第十四章 WWW 上 HTTP 协议
1.1 网络的历史.......................................................................................................1 1.2 OSI 模型........................................................................
第六章 Berkeley 套接字 第七章 网络安全性 第八章 Ping 例程 第九章 tftp 例程 第十章 远程命令执行 第十一章 远程注册 第十二章 远程过程调用 第十三章 远程磁带的访问 第十四章 WWW 上 HTTP 协议
第六章 Berkeley 套接字. 第七章 网络安全性.... 第八章 Ping 例程.. 第九章 tftp 例程.... 第十章 远程命令执行 第十一章 远程注册.... 第十二章 远程过程调用 第十三章 远程磁带的访问.... 第十四章 WWW 上 HTTP ...
LINUX系统分析与编程技术,介绍了在Linux操作系统下进行网络编程所需要的各种知识,从基本的进程控制、通信到Berkeley套接字都有讲解
进程间的通信,通信协议简介,Berkeley套接字,Linux下C语言使用和调试等等
官方版本,亲测可用
较为详细的介绍Windows下socket编程,各种机制原理和函数介绍,是郑大的教学课件
Constituency Parsing with a Self-Attentive Encoder (ACL 2018)
迅捷的httpd 使用原始Berkeley套接字和std :: threads用Swift和C ++编写的小型http服务器。
官方版本,亲测可用