前段时间学习了一下套接字编程,这里先简单介绍一下关于套接字
1.什么是套接字编程:
源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。
网络化网络化的应用程序在开始任何通讯之前都必须要创建套接字,没有它就完全没办法通讯一开始,套接字被设计用在同一台主机上多个应用程序之间的通讯,这也叫进程间通讯,或IPC套接字有两种,分别是基于文件型的和基于网络型的AF_UNIX表示”地址家族:UNIX” –>基于文件的AF_INET表示”地址家族:Internet”–>基于网络的python只支持AF_INET、AF_UNIX、AF_NETLINK家族2.基于TCP套接字编程
基于 TCP 的套接字编程的所有客户端和服务器端都是从调用socket 开始,它返回一个套接字描述符。客户端随后调用connect 函数,服务器端则调用 bind、listen 和accept 函数。
3.套接字基本原理
在网络中最常用的通信模式是客户机/服务器模式(Client/Server模式或C/S模式)。
服务器方要先启动,并监听指定端口,等待客户端的请求,根据客户端的请求提供相应服务。
一般来说,要进行网络通信,必须要在网络的每一端都要建立一个套接字,两个套接字之间是可以建立连接的,也是可以无连接的,并通过对套接字的“读”、“写”操作实现网络通信功能。类似于文件的打开、读、写、关闭的方式。
4.与套接字相关的系统调用:
socket---创建一个套接字close---销毁一个套接字connect--在两个套接字之间建立连接bind---将一个服务器套接字绑定一个地址listen---设置一个套接字为接受连接状态accept---接受一个连接请求并为新建的连接创建一个新的套接字==== ==当你创建一个套接字的时候,需要指明三种选项:命名空间,通信类型和协议=====
5.服务器端程序:
加载套接字库创建套接字(socket)将套接字绑定到一个本地地址端口上(bind)将套接字设为监听模式,准备接收客户请求(listen)等待客户请求到来,请求到来后,接受连接请求,返回一个新的对应此次连接的套接字(accept)用返回的套接字和客户端进行通信(send/recv)返回,等待另一客户请求关闭套接字6.客户端程序:
加载套接字库创建套接字(socket)向服务器发出连接请求(connect)和服务器进行通信(send/recv)关闭套接字(close)
下面来一张图形象生动一下
转载于:https://www.cnblogs.com/Beyond-Ricky/p/8075919.html