Python的Socket模块

Socket的基本操作函数socket()、bind()、listen()、connect()、accept()、recv()、send()、select()、close() 文章目录Socket的基本操作函数1、socket()函数1.1、 命名socket网络字节序与主机字节序:2、bind()函数3、listen()、connect()函数4、accept()函数5、recv()、send()等函数同步Socket的send函数的执行流程注意:同步Socket的recv函数的执行流程注意:6、select()函数理解select模型:select模型的特点:7、close()/shutdown()函数注:多进程中close操作解释close与shutdown的区别 Soc 阅读详情

Python的Socket模块

套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。和大多数语言一样,Python 支持面向连接和无连接,实现接口功能与步骤也大致相同。
面向连接即需要先连接然后通讯, 面向连接主要协议就是传输控制协议(tcp),要创建tcp套接字时需要指定套接字类型为 SOCK_STRAM,表达了他作为流套接字的特点。
无连接,顾名思义无需建立连接就可以进行通讯,这时数据到达顺序、可靠性就无法保证了。实现这种连接的协议就是用户数据包协议(udp)。创建UDP时需要指定套接字类型为 SOCK_DGRAM。

TCP服务器端:

1. 第一步是创建socket对象。调用socket构造函数。如:
socket = socket.socket( family, type )
family参数代表地址家族,可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信。type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字)
2. 第二步是将socket绑定到指定地址。这是通过socket对象的bind方法来实现的:
socket.bind( address )
由AF_INET所创建的套接字,address地址必须是一个双元素元组,格式是(host,port)。host代表主机,port代表端口号。如果端口号正在使用、主机名不正确或端口已被保留,bind方法将引发socket.error异常。
3. 第三步是使用socket套接字的listen方法接收连接请求。
socket.listen( backlog )
backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求
4. 第四步是服务器套接字通过socket的accept方法等待客户请求一个连接。
connection, address = socket.accept()
调 用accept方法时,socket会时入“waiting”状态。客户请求连接时,方法建立连接并返回服务器。accept方法返回一个含有两个元素的 元组(connection,address)。第一个元素connection是新的socket对象,服务器必须通过它与客户通信;第二个元素 address是客户的Internet地址。
5. 第五步是处理阶段,服务器和客户端通过send和recv方法通信(传输 数据)。服务器调用send,并采用字符串形式向客户发送信息。send方法返回已发送的字符个数。服务器使用recv方法从客户接收信息。调用recv 时,服务器必须指定一个整数,它对应于可通过本次方法调用来接收的最大数据量。recv方法在接收数据时会进入“blocked”状态,最后返回一个字符 串,用它表示收到的数据。如果发送的数据量超过了recv所允许的,数据会被截短。多余的数据将缓冲于接收端。以后调用recv时,多余的数据会从缓冲区 删除(以及自上次调用recv以来,客户可能发送的其它任何数据)。
6. 传输结束,服务器调用socket的close方法关闭连接

TCP客户端:

1. 第一步是创建一个socket以连接服务器:socket = socket.socket( family, type )
2. 第二步是使用socket的connect方法连接服务器。对于AF_INET家族,连接格式如下:
socket.connect( (host,port) )
host代表服务器主机名或IP,port代表服务器进程所绑定的端口号。如连接成功,客户就可通过套接字与服务器通信,如果连接失败,会引发socket.error异常。
3. 第三步是处理阶段,客户和服务器将通过send方法和recv方法通信。
4. 传输结束,客户通过调用socket的close方法关闭连接。
伪代码如下:
1 创建套接字,然后连接远端地址,socket ,connect。
2 建立连接之后开始发送数据。Send(data),当然可以从缓冲区读取服务器发来的数据。Recv(BUFF)
3 完毕后,关闭套接字。Close
cs=socket(Socket.AF_INET,Socket.SOCK_DGRAM)
#创建客户套接字
cs.connect() #尝试连接服务器
comm._loop: #通信循环
cs.send()/cs.recv() #对话
cs.close() #关闭套接字
简单例子:
服务端:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/7/27 13:42
# @File    : myser.py

"""
socket的简单使用
"""

import  socket

host=''
port=7755
server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
addr=(host,port)
server.bind(addr)
server.listen(5)
print('start')
client,c_addr=server.accept()
print(c_addr,u'连接进来')
data=client.recv(1024) #接收客户端传递过来的信息
print data
客户端:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2017/7/27 13:46
# @File    : mycli.py


import socket

host='127.0.0.1'
port=7755
addr=(host,port)

client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(addr) #连接服务端
client.send('hello') #发送信息
client.close()
基于python的socket通信 socket通信 阅读详情

相关推荐

Python Socket模块的介绍与简单使用

Python Socket的介绍与简单使用 Socket 简介 Socket模块的主要目的就是帮助在网络上的两个程序之间建立信息通道。在python中提供了两个基本的Socket模块:服务端Socket和客户端Socket。当创建了一个服务端Socket之后,这个Socket就会在本机的一个端口上等待连接,客户端Socket会访问这个端口,当两者完成连接之后就能够进行交互了。在使用Socket进行...

A_dmin的博客 1万+

socket编程之connect()

connect()函数入门到精通

qq_55537010的博客 8354

socket编程中的connect连接失败是什么问题?

远程主机不可达:连接失败最常见的原因之一是远程主机不可达。如果连接失败并且确定网络配置正确,那么可能需要检查远程主机是否正常工作。总结:在socket编程中,connect连接失败可能是由于远程主机不可达、网络防火墙设置或IP地址、端口配置错误等原因引起的。IP地址或端口错误:在连接远程主机时,需要指定正确的目标IP地址和端口号。"的消息,否则将输出相应的错误信息,帮助确定连接失败的原因。网络防火墙:网络中的防火墙可能会阻止连接的建立。因此,在连接远程主机之前,应该确保防火墙允许出站连接请求。

DevProZ的博客 3977

python系列:socket库详解

socket库应用详解

hjz2196987870的博客 1万+

射频电路设计——射频器件基础

本文仅供自己复习使用,请勿转载! 射频电路制作方法 MCM工艺 CMOS工艺 趋肤效应、深度 频率越高趋肤效应越明显 高频器件 高频电阻 绕线的比贴片的多一个电感,是因为绕线的因为是线绕制的,只有有线就会有电感,所以绕线电阻等效模型会比贴片的多一个电感 多晶硅电阻模型 深线性区MOS电阻 高频电阻的频率响应 记忆的话就后面的频率特性有点像电容的 高频电容 作用 单层贴片式电容 多层贴片式电容 MIM电容 MOM电容 由于是并联的,所以总的电容值是单个的直接相加 PN结电容 M.

输出每日所学,供大家学习使用 7142

windows局域网文件夹共享

windows局域网共享文件夹,亲测,包括可能出现的一些问题解决

yml15180824993的博客 4万+

python socket模块

原链接:https://blog.youkuaiyun.com/qq_42081843/article/details/83154001#Python__socket__1 Python socket 模块简介 Python 两个基本的 socket 模块。 Socket 类型 套接字格式 socket.AF_UNIX socket.AF_INET socket.A...

houzhyan-博客 2613

链式中介效应结果解读:从Bootstrap置信区间到实践意义

本文深入解析链式中介效应结果的解读方法,从Bootstrap置信区间的应用到实践意义的阐述。通过实际案例展示如何分析总效应、直接效应和间接效应,并强调效应量评估的重要性。文章还提供了构建逻辑解释的三步法,以及敏感性分析和报告撰写的实用技巧,帮助研究者准确解读链式中介效应。

weixin_33690367的博客 718

Python 中 Socket 模块详解

Python 的socket模块提供了强大的网络编程能力。通过了解基础的 Socket 操作、数据发送接收、Socket 选项以及异常处理,开发者可以轻松地实现网络应用。希望这篇博文能帮助你更好地理解和使用 Python 的 Socket 模块。

XMYX-0 2081

广告推荐算法 - 学习笔记(持续更新中)

本篇博客,是我用来记录学习广告推荐算法的一些笔记和总结。王喆:"深度"学习计算广告计算广告系统的核心目标是通过数据、算法和技术,在合适的场景下,将最相关的广告精准推送给目标用户,同时实现广告主媒体平台和用户之间的多方利益最大化。广告主:需求方核心目标:通过精准投放广告,最大化转化(如点击、购买)并控制成本,提升投资回报率(ROI)。关键行为:广告创建,定向设置,预算与出价策略,效果监控媒体平台:供给方核心目标:最大化广告收入,同时保持用户体验以避免用户流失。

qq_39748832的博客 2196

漏洞挖掘之工具配置

本文主要讲解burp工具的插件安装。

qq_64775230的博客 3273

python socket模块_python中的Socket模块

1.Socket模块简介Socket模块的主要目的是帮助在网络上的两|个程序之间建立信息通道。在Python中提供了两个基本的Socket模块:服务端Socket和客户端Socket。当创建了一个服务端Socket之后,这个Socket就会在本机的一个端口上等待连接,客户端Socket会访问这个端口,当两者完成连接之后,就可以进行交互了。在Python中,Socket 模块的使用十分简单。在使用S...

weixin_39747511的博客 2456

python的socket模块

一、官方文档: https://docs.python.org/3.9/library/socket.html 二、按照官方文档练习 1、Socket families (1)根据系统和构建选项,该模块支持各种套接字家族。即根据创建套接字对象时指定的地址族,自动选择特定套接字对象所需的地址格式。例如: ①指定AF_UNIX,则会使用文件系统编码和'surrogateescape'错误处理程序 ②指定AF_CAN,则可定义网络接口名称,并接收来自该系列所有网络接口的数据包 ③指定AF_ALG,则

weixin_43431593的博客 1万+

OpenClaw人人养虾:接入即时通讯平台Zalo

通过 Zalo Official Account(OA,官方账号)API,可以将 OpenClaw 接入 Zalo,实现面向越南用户的自动化客服和互动。

王国平的博客 437

Detector-Free SfM 项目复现完整指南:从环境搭建到代码解析与可视化

本文提供了Detector-Free SfM项目的完整复现指南,涵盖技术背景、环境配置、代码解析和可视化方案。重点包括: 技术背景:Detector-Free SfM通过两阶段策略(粗重建+迭代精化)解决了传统SfM在弱纹理区域的瓶颈问题,采用深度学习匹配器替代传统特征点检测。 环境配置: 详细硬件要求与推荐配置(GPU/CPU/内存) 完整的Ubuntu系统设置步骤 Conda环境创建与依赖安装流程 关键组件安装指南(PyTorch、COLMAP等) 常见错误解决方案 项目特点: 支持多种Detector

huanghm88的专栏 120

python之socket模块

自己学习

qq_38039965的博客 7266

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python socket模块作用_Python socket 模块的使用

一、使用socket实现一对一的简单通信socket就是一个开往网络应用必备的功能模块。通过这个模块我们可以自己写程序的server端和client端,可以自己定义server端对外提供服务器的ip地址和端口。学会使用这个模块的之后我们不仅可以开往网络程序,还可以利用socket模块开发出端口扫描的程序。先看一段创建服务器端的代码importsocket#定义服务器端启动后要绑定的ip和端口ip...

weixin_39986060的博客 464

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python中socket模块详解

socket模块简介 原文:http://www.lybbn.cn/data/datas.php?yw=71 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket通常被叫做“套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务...

3659

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python如何安装socket_python中socket模块详解

socket模块简介网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。socket通常被叫做“套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。python中so...

weixin_39531604的博客 5425

python中的Socket模块

文章目录1.Socket模块简介2.基本用法3.Socket常用函数4.编写一个简单的客户端与服务端5.实现的效果 1.Socket模块简介 Socket模块的主要目的是帮助在网络上的两|个程序之间建立信息通道。在Python中提供了两个基本的Socket模块:服务端Socket和客户端Socket。当创建了一个服务端Socket之后,这个Socket就会在本机的一个端口上等待连接,客户端Sock...

1匹黑马 630

python中socket模块的作用_Python的socket模块详解

一、网络知识的一些介绍socket 是网络连接端点。例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接www.jb51.net的Web服务器主机,Web服务器也对来自的请求在一个socket上进行监听。两端使用各自的socket来发送和 接收信息。在使用的时候,每个socket都被绑定到一个特定的IP地址和端口。IP地址是一个由4个数...

weixin_39537977的博客 1322

python socket模块安装_python中socket模块详解(转载)

1.socket模块要使用socket.socket()函数来创建套接字。其语法如下:socket.socket(socket_family,socket_type,protocol=0)socket_family可以是如下参数:socket.AF_INET IPv4(默认)socket.AF_INET6 IPv6socket.AF_UNIX 只能够用于单一的Unix系统进程间通信socket_t...

weixin_35610373的博客 3803

python socket模块下载_python socket模块是怎么使用?

希望大家都可以有自己的思路,因为这部分内容,和以往不同,强有力的逻辑思维,是做好使用模块的基础,不知道大家在使用的时候,会不会先做好规划内容,如果没有规划设置的小伙伴,可以跟着小编来学习下这个要怎么去使用。socket编程思路服务端 TCP客户端实例操作我们调用 socket 对象的 accept 方法。该方法等待客户端的连接,并返回 connection 对象,表示已连接到客户端。#!/usr/...

weixin_36110673的博客 748

python socketserver模块详解_Python的socket模块详解

Python的socket模块详解http://blog.sina.com.cn/s/blog_6d0599f90100rlem.html最近在学习Python看了一篇文章写得不错,是在脚本之家里的,原文如下,很有帮助:一、网络知识的一些介绍socket 是网络连接端点。例如当你的Web浏览器请求www.jb51.net上的主页时,你的Web浏览器创建一个socket并命令它去连接www.jb5...

weixin_39635373的博客 514
上一篇: Python单元测试模块---unittest
下一篇: Python的Select模块
Coder_py
博客等级 码龄10年 106粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值