创建一个套接字,python在一个非套接字上尝试了一个操作
本文主要为大家介绍python socket的创建和实现。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-10101,网络协议2,地址族3,通过域名获取IP地址4,socket
1.网络协议
TCP/IP是设备在互联网和大多数本地网络上通信时使用的一组协议。TCP更可靠,有很多错误检查,需要更多资源。HTTP、SMTP或FTP等服务使用它。UDP的可靠性要差很多,检错能力有限,需要的资源也少。等待VoIP服务使用它。
插座。SOCK_STREAM用于为TCP创建套接字,而socket。SOCK_DGRAM为UDP创建套接字。
2.地址族
创建套接字时,必须指定其地址族,并在套接字中使用该类型。
AF_UNIX,AF_LOCAL- local通信
AF_INET-IPv4互联网协议
AF_INET6-IPv6互联网协议
AF_IPX-IPX-Novell协议
AF _蓝牙-无线蓝牙协议
AF_PACKET-底层分组接口
对于AF_INET地址族,指定了一对(主机、端口)。Host是用Internet域表示法表示主机名(如example.com)或IPv4地址(如93.184.216.34)的字符串,port是整数。
目录
导入插座
IP=socket . gethostbyname( geek-docs.com )
打印(ip)
3、通过域名获取IP地址
TCP ipv4
导入插座
#为IPV4创建TCP套接字
with socket.socket(套接字。AF_INET,socket。SOCK_STREAM)作为s:
#工作时间服务器的主机名和端口
host=time.nist.gov
端口=13
#连接到远程套接字
s.connect((主机,端口))
#将数据发送到套接字。套接字必须连接到远程套接字。从字节发送数据,直到所有数据发送完毕或出现错误。
森道尔(b )
print(字符串(s.recv(4096), utf-8 ))
# HEAD request:HEAD请求是没有消息体的GET请求。请求/响应的头包含元数据,如HTTP协议版本或内容类型。
导入插座
with socket.socket(套接字。AF_INET,socket。SOCK_STREAM)作为s:
s.connect((webcode.me ,80))
s . sendall(b head/HTTP/1.1 \ r \ n host : webcode . me \ r \ n cept : text/html \ r \ n \ r \ n )
print(字符串(s.recv(1024), utf-8 ))
#GET Request:请求指定了资源的表示。使用GET的请求应该只检索数据。
导入插座
with socket.socket(套接字。AF_INET,socket。SOCK_STREAM)作为s:
s.connect((webcode.me ,80))
#对于HTTP 1.1协议,默认情况下连接可以是持久的。这就是我们发送Connection: close头的原因。
s . sendall(b get/HTTP/1.1 \ r \ n host : webcode . me \ r \ n cept : text/html \ r \ n connection : close \ r \ n \ r \ n )
而True:
data=s.recv(1024)
如果不是数据:
破裂
print(data.decode())
# Echo客户端服务器示例
导入插座
导入时间
使用socket.socket()作为s:
host=localhost
端口=8001
s.bind((主机,端口))
打印(f 套接字绑定到{端口} )
s.listen()
con,addr=s.accept()
使用con:
而True:
data=con.recv(1024)
如果不是数据:
破裂
con.sendall(数据)
#异步服务器
进口异步
异步定义句柄_客户端(读取器,写入器):
data=(await reader.read(1024))
writer.write(数据)
writer.close()
loop=asyncio.get_event_loop()
loop . create _ task(asyncio . start _ server(handle _ client, localhost ,8001))
loop.run_forever()
这就是python套接字创建的细节。更多关于python socket的信息,请关注热门IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。