导航:首页 > 编程语言 > pythonrecv参数

pythonrecv参数

发布时间:2024-06-01 21:43:03

python socketserver和socket的区别

区别:

1.首先介绍下socket

socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也
称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一 般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原 意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务

内部调用流程为:

启动服务端程序

执行 TCPServer.init方法,创建服务端Socket对象并绑定 IP 和 端口

执行 BaseServer.init方法,将自定义的继承自SocketServer.BaseRequestHandler 的类 - MyRequestHandle赋值给 self.RequestHandlerClass

执行 BaseServer.server_forever 方法,While 循环一直监听是否有客户端请求到达 ...
当客户端连接到达服务器

执行 ThreadingMixIn.process_request 方法,创建一个 “线程” 用来处理请求

执行 ThreadingMixIn.process_request_thread 方法

执行 BaseServer.finish_request 方法,执行 self.RequestHandlerClass() 即:执行 自定义 MyRequestHandler 的构造方法(自动调用基类BaseRequestHandler的构造方法,在该构造方法中又会调用 MyRequestHandler的handle方法)

ForkingTCPServer

ForkingTCPServer和ThreadingTCPServer的使用和执行流程基本一致,只不过在内部分别为请求者建立 “线程” 和 “进程”。

❷ python socket recv 数据是什么类型

Python中socket函数recv的问题!
在腾讯云上创建您的SQL Cluster>>> »
我在写python教程的博客,但是今天在写socket编程的相关知识的时候,准备用下面的程序做演示代码,本以为不会有问题,但是问题就莫名其妙的出现了!
d = s.recv(1024)
这段代码的返回值通过使用 not d 判断总是失败,于是那个循环读取的 while 就陷入了死循环,请各位帮忙看一下,谢谢!

#-*- coding:utf8 -*-

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("www.oschina.net", 80))
s.send("GET / HTTP/1.1\r\nHost:www.oschina.net\r\n\r\n")

tmp = []
while True:
d = s.recv(1024)
if not d:
break
tmp.append(d)

data = ''.join(tmp)
s.close()

header, html = data.split("\r\n\r\n", 1)
print header
with open("oschina.html", "wb") as f:
f.write(html)

❸ 怎么用python登录windows系统

# -*- coding:utf-8 -*-
#! python2
import wmi
def sys_version(ipaddress, user, password):
conn = wmi.WMI(computer=ipaddress, user=user, password=password)
for sys in conn.Win32_OperatingSystem():
print "Version:%s" % sys.Caption.encode("UTF8"),"Vernum:%s" % sys.BuildNumber #系统信息
print sys.OSArchitecture.encode("UTF8") # 系统的位数
print sys.NumberOfProcesses # 系统的进程数
if __name__ == '__main__':
sys_version(ipaddress="ip", user="用户名", password="密码")

❹ recv函数返回什么值

recv函数返回其实际的字节数,如果recv在时出错,那么它返回SOCKET_ERROR。如果recv函数在等待协议接收数据时网络中断了,那么它返回0。

扩展阅读,linux recv函数详解:

1 #include <sys/socket.h>
2 ssize_t recv(int sockfd, void *buff, size_t nbytes, int flags);
recv 的前3个参数等同于read函数。

flags参数值为0或:

flags
说明
recv
send

MSG_DONTWAIT
仅本操作非阻塞

MSG_OOB 发送或接收带外数据

MSG_PEEK
窥看外来消息

MSG_WAITALL
等待所有数据

recv函数解析:

sockfd: 接收端套接字描述符

buff: 用来存放recv函数接收到的数据的缓冲区

nbytes: 指明buff的长度

flags: 一般置为0

1) recv先等待s的发送缓冲区的数据被协议传送完毕,如果协议在传送sock的发送缓冲区中的数据时出现网络错误,那么recv函数返回SOCKET_ERROR

2)
如果套接字sockfd的发送缓冲区中没有数据或者数据被协议成功发送完毕后,recv先检查套接字sockfd的接收缓冲区,如果sockfd的接收缓
冲区中没有数据或者协议正在接收数据,那么recv就一起等待,直到把数据接收完毕。当协议把数据接收完毕,recv函数就把s的接收缓冲区中的数据
到buff中(注意协议接收到的数据可能大于buff的长度,所以在这种情况下要调用几次recv函数才能把sockfd的接收缓冲区中的数据
完。recv函数仅仅是数据,真正的接收数据是协议来完成的)

3) recv函数返回其实际的字节数,如果recv在时出错,那么它返回SOCKET_ERROR。如果recv函数在等待协议接收数据时网络中断了,那么它返回0。

4) 在unix系统下,如果recv函数在等待协议接收数据时网络断开了,那么调用 recv的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。

❺ Python data,addr=recv(2048)什么意思

data, addr = s.recv(2048)
s.recv()即socket.recv(),的返回值是一个元组(data,address)
从发送方接收数据,接收到的数据data为字符串类型,保存在data中,从对方发送过来的地址保存在addr中。2048表示一次最多接收2048个字节。

阅读全文

与pythonrecv参数相关的资料

热点内容
安卓手机拍摄慢动作怎么设置 浏览:480
中国程序员加油 浏览:172
python去哪个城市比较多 浏览:759
闪迪u盘加密初始密码 浏览:773
房屋办理解压需要契税和发票吗 浏览:888
丽江易学java高级程序员 浏览:661
程序员木兰教程 浏览:665
pythontkinter按钮 浏览:439
如何快捷录音安卓 浏览:7
sd播放音乐需要哪些文件夹 浏览:839
华为平板m3怎么升级到安卓11 浏览:532
联通app排队号怎么看 浏览:647
怎么不越狱安装app 浏览:183
python怎么用链表 浏览:851
8k程序员面试题 浏览:541
贵州交警app怎么下载 浏览:414
解压缩安装包怎么安装 浏览:44
压缩机系统与装置 浏览:677
上海大众app怎么查保养记录 浏览:464
抖音网红一手资源解压密码 浏览:543