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(bThis is server)
conn.close()
服务端
技术分享图片
import socket
client = socket.socket()
client.connect((192.168.13.188, 9001))
client.send(bThis is client.)
response = client.recv(1024)
print(response)
client.close()
客户端

 

以上是关于socket的主要内容,如果未能解决你的问题,请参考以下文章

Python干货socket中的listen()参数(数字)到底代表什么?

paper 78:sniff抓包程序片段

通过 c# 与 socket.io 服务器通信

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js