socket什么意思_计算机网络--socket编程

284560fde00d828a2d24d690b8ac4c87.png
c49f0cf982719e5206cce13c584943ef.png
573e9480825d762f53a0466b4070069f.png

套接字为我们客户和服务器通信提供了这样一种机制,就像插头一样,把两个套接字连载一起,套接字意思是插座,通信就是一个线把两头连载一起,服务器一定是要运行起来的,通常来说在一个主机上有多个进程,而每一个服务器应用程序,为了支持客户端进程能够与他进行通信,按照套接字的机制必须创建套接字,一个进程可能创建多个套接字,不同进程创建自己的套接字,当某一个客户端套接字想要与某一个服务进行通信的时候,那么问题就来了,我们怎么样明确,我们与哪个进程通信,事实转变为 我要插到哪个套接字,一个IP地址可以唯一的标识一个主机,一个主机上由于有多个应用进程在运行,每个应用进程可能使用多个套接字,靠ip没法标识与哪个套接字进行通信。

标识通信端点(对外)

IP地址+端口号

操作系统/进程如何管理套接字(对内):

套接字描述符 socket descriptor

298055786fd4b9f58feb8ada95cd75e6.png

套接字结构

bcc39efbdde3f0d30de5491d6719bfd1.png
ba413f6bb659bebce8e663d95233182b.png
fc586fdf27b6737e9f5c01dfd1ecefb4.png
270adefc70603caae425c832ba438dd9.png
72f42da6f5f99e7bb33e735cd28466fb.png
d6c9d38c843638dd728bd05e15bad81c.png
bd3671576a236205788d0fc5b6c0bb85.png
72af3c43be8c9d70d1bb8f533b49b581.png
e7c16fda932e87a1eb53b5731f365faa.png

重点,accept

4d708dc27ed8d0740316ac203b3bb845.png

解释为什么要用新创建的套接字与客户端通信

tcp是一个可靠的面向字节流的传输协议并且还有一个特点,是点对点的,点对点的意味着一个tcp连接只能连接客户端和服务端这俩套接字,假如我们的tcp服务器不这样做,当一个客户链接请求来了以后,就用主套接字与客户端进行tcp连接通信,tcp服务器在某一时刻只能与一个客户端进行通信,就不可能实现并发的tcp服务器。为了实现并发tcp服务器,accept取到一个连接请求,不用主套接字为你提供服务,创建一个新的套接字与客户端通信,如果我们的服务器通过多线程多进程实现并发服务器,主线程可以继续接受新的客户连接请求,创建一个新的socket提供服务。

88109b1c7eac343d41f4046003ac252d.png
ca12884c48d4c3da117b4c3c41ac1046.png
670907e51d5accc43a5c55391d563b3f.png
c6f726fe2baac363161f69b9488dcb66.png
cd156232da9a79ec4bfb19bf60ebea3e.png
dd6568df56deb778f92eeb1b251837f2.png
02b5e6d52221e4bfc5951f02ee568ef9.png
0aedd862ad45cbc033be2093ec04e348.png
ab8ebf550033211cb58ec981fd687a96.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值