socket
Posted virous1887
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket相关的知识,希望对你有一定的参考价值。
socket
socket通常称为‘套接字‘,用于描述ip地址和端口,是一个通信链的句柄,应用程序通常通过‘套接字‘向网络发出请求或者应答网络请求.
socket起源于Unix,Unix/Linux基本哲学之一就是‘一切皆文件‘,对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO,打开,关闭)
socket和file的区别:
file模块是针对某个指定文件进行[打开][读写][关闭]
socket模块是针对服务器端和客户端进行[打开][读写][关闭]
客户端: cs架构, client -> server
浏览器:bs架构, browser-> server
基于socket模块实现网络通信
python2 ,send/recv 发送的都是字符串
python3 ,send/recv 发送的都是字节(需要将发送的信息转换为字节)
阻塞:
服务端:
accept, 阻塞:等待客户端来连接
recv, 阻塞:等待客户端发送数据
客户端:
connect, 阻塞:一直连接,直到连接成功才往下运行其他代码
recv, 阻塞:等待服务端发送数据
import socket server = socket.socket() server.bind((‘192.168.13.188‘, 9001)) server.listen(5) conn,addr = server.accept() response = conn.recv(1024) print(response) conn.send(b‘This is server‘) conn.close()
import socket client = socket.socket() client.connect((‘192.168.13.188‘, 9001)) client.send(b‘This is client.‘) response = client.recv(1024) print(response) client.close()
以上是关于socket的主要内容,如果未能解决你的问题,请参考以下文章