首页>>科技 >>内容

socket是什么意思,socket编程是什么意思_socket详解

发布时间:2023-12-27 16:06:04编辑:温柔的背包来源:

socket是什么意思,socket编程是什么意思_socket详解

很多朋友对socket是什么意思,socket编程是什么意思_socket详解不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

什么是插座?从编程语言的角度来看,socket是一个无符号整数变量,用来标识一个通信进程。两个进程通信时,总是需要知道这些信息:双方的ip地址和端口号,以及用于通信的协议栈。插座是和这些东西绑定的。socket可以通过使用unix提供的接口或者wIndows提供的winSock来实现。

Socket适用场合socket是一种位于传输层的网络编程,一般用于需要自己定义应用层协议的应用。如果有成熟的应用层协议,如http,可以使用jsp.php.asp或。net框架。socket的优缺点个人认为缺点是很多功能需要记忆,过程比较复杂,需要记忆。

如何使用带socket的客户端:需要先建立socket,然后申请连接服务器,需要知道服务器的ip和端口号,不需要指定客户端的(客户端会由os分配)。连接到服务器后,可以开始读写信息,最后关闭套接字。服务器:建立监听套接字,绑定地址和端口号,然后开始监听,等待客户端连接,生成响应套接字,处理连接请求,然后读写信息,关闭响应套接字,关闭监听套接字。

Socket是进程通信的一种方式,即调用这个网络库的一些API函数,实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即根据TCP/IP协议分配给本地主机的网络地址。如果两个进程想要进行通信,其中任何一个进程都必须首先知道通信方的位置,也就是对方的IP。

(2)端口号:用于标识本地通信进程。一个本地进程在通信时会占用一个端口号,不同的进程有不同的端口号。因此,在通信之前,必须分配一个尚未访问的端口号。(3)连接:指两个进程之间的通信链接。(4)半相关(semi-correlation):一个进程在网络中可以用一个三元组来全局唯一标记:(协议,本地地址,本地端口号)这样的三元组称为半相关(Semi-correlation),它指定了连接的每一半。

(4)全相关:一个完整的网间进程通信需要由两个进程组成,并且只能使用同一个高层协议。也就是说,不可能一端和TCP通信,另一端和UDP通信。

因此,一个完整的网间通信需要一个五元组来标识:(协议、本地地址、本地端口号、远程地址、远程端口号)这样的五元组称为关联,即两个具有相同半相关性的协议可以组合成合适的关联,或者完全指定形成连接。

客户端/服务器模式在TCP/IP网络的应用中,两个通信进程之间交互的主要模式是客户端/服务器(C/S)模式,即客户端向服务器发送服务请求,服务器收到请求后提供相应的服务。客户机/服务器模式的建立基于以下两点:

(1)首先,建立网络的原因是网络中的软硬件资源、计算能力、信息是不对等的,需要共享,从而形成了资源多的主机提供服务,资源少的客户请求服务的非对等角色。

(2)其次,网间进程通信是完全异步的,通信进程之间既没有父子关系,也没有共享内存缓冲区,所以需要一种机制在希望通信的进程之间建立联系,为它们的数据交换提供同步,这种机制就是基于客户机/服务器模式的TCP/IP。服务端:流程是服务端先启动,根据请求提供相应的服务。

(1)打开一个通信通道,通知本地主机愿意在一个公认的地址上的某个端口(如FTP的21端口)接收客户请求;(2)等待客户要求到达港口;

(3)当接收到来自客户端的服务请求时,处理该请求并发送响应信号。当接收到并发服务请求时,应该激活一个新的进程来处理这个客户请求(比如UNIX系统中的fork和exec)。新流程处理这个客户请求,不需要响应其他请求。服务完成后,这个新流程与客户之间的通信链路关闭并终止。(4)返回步骤(2)并等待另一位顾客的请求。(5)关闭服务器客户端:

(1)打开通信信道,并将其连接到服务器所在主机的特定端口;(2)向服务器发送服务请求消息,等待并接收回复;继续提出要求。(3)请求后关闭通信通道并终止。从上面描述的过程我们可以知道:(1)客户端和服务器端进程的角色是不对称的,所以代码是不一样的。(2)通常先启动服务器进程。只要系统在运行,服务进程就存在,直到被正常终止或强制终止。

以上知识分享希望能够帮助到大家!