socket有两种套接字,socket套接字是由什么和什么组成
用户想要的信息的传递只建立在两个app之间。实际上,TCP连接是一个通过套接字的桥梁。
那么什么是套接字呢?
使用TCP主机的IP地址加上主机上的端口号作为TCP连接的端点。这个端点称为套接字或套接字。Socket用(IP地址:端口号)表示,用来区分不同APP应用进程之间的网络通信和连接。有三个主要参数:通信目标IP地址、要使用的传输层协议(TCP或UDP)和端口号。
python中的套接字
python中引用socket的模块是socket,它在服务器和客户端的信息传输中起着决定性的作用。根据其功能,可分为三种插座。一个是监听套接字,负责服务器的人一直监听客户端的请求。一个是客户端套接字,负责联系服务器,收发信息;最后是对等连接套接字,负责服务器和客户端之间的信息收发。
上图中出现了双工这个词,那么什么是单工、半双工、全双工呢?
根据分工和信号传输的方向,通信可分为单工、半双工和全双工。单工数据传输只支持单向数据传输;只有一方可以同时接收或发送信息,因此无法实现双向通信。比如电视和广播。半双工数据传输允许双向数据传输,但某一时刻只允许单向数据传输,实际上是单工通信,有切换方向;同时,只有一方可以发送和接收信息,可以双向交流。/对讲机。全双工数据通信允许同时双向数据传输,如电话通信。
用代码实现服务端与客户端通信服务器端代码如下:
ImportSocketserver=socket . socket()server . bind)). 0.0 ,8520)) server.listen (5)) 5)当true: ab=SSE客户端代码如下所示。
importsocketclient=socket . socket()client . connect)). 0.0),8520 ) ) mess=input ( -))。编码
-你好,世界!收到-你好,世界!服务器端影响:
收到消息-你好,世界!该代码详细说明了服务器实现上述效果的过程:
套接字的创建,即实例化。Server=socket.socket()绑定地址。地址是一个包含ip和端口的元组,它为客户端连接创建自己的地址。65代码中的Server.bind((127.0.0.5),8520)))))))))))))5是客户端server.listen(5)在接收连接请求时与客户端建立连接,返回的结果由两个变量接收。请注意,第一个变量是对等连接套接字,第二个变量是客户端地址(ip和端口)A,b=server.accept,尤其是发生阻塞时。稍后将描述阻塞。使用对等连接套接字打开接收状态。如果收到null,则客户端已主动断开连接。再次阻塞,客户端不能发送空值。代码中的1024表示可以接收的最大字节数。A.recv(1024)信息传递讲究一轮。收到消息后,必须回复客户。这里应该注意的是,信息的传输是以字节的形式进行的。a .如果收到空值a.send (date),最后一步是断开连接。A.close))客户端实现上述效果的过程:
创建一个套接字,即实例化并生成一个客户端套接字。Client=socket.socket()向服务器发送连接请求。如果连接成功,原来的客户端套接字实际上是一个对等连接套接字。代码中的ip和端口是服务器上的。Client.connect((127.0.0.5),8520))))))))))))))当652cient.send()主动断开与cient.recv(1024)服务器的连接时,客户端会自动向服务器发送空值。什么是client.close()块?
我们看到的第一个框应该是input。那时候我们应该还没有这方面的知识。阻塞意味着在代码运行的地方,必须触发一个条件来保持代码运行。不然这里就一直堵着。在您第一次看到的输入中,只需输入文本并按enter键继续。我们在插座中碰到了两个积木。一个是accept,解锁条件是客户端发送连接请求,一个是recv,解锁条件是接收方的消息。
代码中的每个对象都剖析实例化的对象。
绑定地址后
在接收到连接请求后
客户端成功连接后
套接字阻塞带来的影响:因为阻塞导致服务端一次只能与一个客户端相连,这在实际应用中是万万不可行的,在下篇博客中,我会对非阻塞套接字做一个总结。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。