python套接字创建怎样做,要点有哪些
Admin 2022-08-19 群英技术资讯 1059 次浏览
在实际应用中,我们有时候会遇到“python套接字创建怎样做,要点有哪些”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“python套接字创建怎样做,要点有哪些”文章能帮助大家解决问题。TCP / IP 是设备用于在 Internet 和大多数本地网络上进行通信的一组协议。 TCP 更可靠,具有大量错误检查并需要更多资源。 HTTP,SMTP 或 FTP 等服务使用它。 UDP 的可靠性要差得多,错误检查的能力也有限,所需资源也更少。 VoIP 等服务使用它。
socket.SOCK_STREAM用于为 TCP 创建套接字,而socket.SOCK_DGRAM为 UDP 创建套接字。
创建套接字时,必须指定其地址族,在套接字中使用该类型。
AF_UNIX,AF_LOCAL-本地通讯
AF_INET-IPv4 Internet 协议
AF_INET6-IPv6 Internet 协议
AF_IPX-IPX-Novell 协议
AF_BLUETOOTH-无线蓝牙协议
AF_PACKET-底层数据包接口
对于AF_INET地址族,指定了一对(主机,端口)。 host是一个字符串,表示互联网域表示法中的主机名(如example.com)或 IPv4 地址(如93.184.216.34),并且 port 是整数。
import socket
ip = socket.gethostbyname("geek-docs.com")
print(ip)
TCP ipv4
import socket
# 创建用于IPV4的TCP套接字
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
# 工作时间服务器的主机名和端口
host = "time.nist.gov"
port = 13
# 连接到远程套接字
s.connect((host, port))
# 将数据发送到套接字。套接字必须连接到远程套接字。从字节发送数据,直到发送完所有数据或发生错误为止
s.sendall(b'')
print(str(s.recv(4096), 'utf-8'))
# HEAD请求:HEAD 请求是没有消息正文的 GET 请求。 请求/响应的标头包含元数据,例如 HTTP 协议版本或内容类型。
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(("webcode.me", 80))
s.sendall(b"HEAD / HTTP/1.1\r\nHost: webcode.me\r\nAccept: text/html\r\n\r\n")
print(str(s.recv(1024), 'utf-8'))
#GET 请求:请求指定资源的表示形式。 使用 GET 的请求应仅检索数据
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(("webcode.me", 80))
# 对于 HTTP 1.1 协议,默认情况下,连接可以是持久的。 这就是为什么我们发送Connection: close标头的原因。
s.sendall(b"GET / HTTP/1.1\r\nHost: webcode.me\r\nAccept: text/html\r\nConnection: close\r\n\r\n")
while True:
data = s.recv(1024)
if not data:
break
print(data.decode())
#回显客户端服务器示例
import socket
import time
with socket.socket() as s:
host = 'localhost'
port = 8001
s.bind((host, port))
print(f'socket binded to {port}')
s.listen()
con, addr = s.accept()
with con:
while True:
data = con.recv(1024)
if not data:
break
con.sendall(data)
#异步服务器
import asyncio
async def handle_client(reader, writer):
data = (await reader.read(1024))
writer.write(data)
writer.close()
loop = asyncio.get_event_loop()
loop.create_task(asyncio.start_server(handle_client, 'localhost', 8001))
loop.run_forever()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了python数据分析matplotlib的基础绘图使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
如何计算python代码耗时是多少?一些Python新手不太清楚要怎样统计python代码耗时,文本就给大家介绍几种方法,时间戳相减、装饰器、timeit模块、重复调用 timeit()和cProfile性能分析工具。下面我们一起来具体看看吧。
在这篇文章中我们来了解一下python事件,包括延迟运行事件、重叠事件、事件优先级、取消事件、其他方法。一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
本章节将一些Python3基础语法整理成手册,方便各位在日常使用和学习是查阅,包含了编码、标识符、保留字、注释、缩进、字符串等常用内容。
哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。本文将站在开发者的角度,带着大家一起探究哈希的世界,感兴趣的小伙伴可以跟随小编一起学习一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008