# -*- coding: cp936 -*-
socket.getaddrinfo(host, port, family=0, socktype=0, proto=0, flags=0)
#根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组,
#参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None.
#参数port如果字符串形式就代表一个服务名,比如“http”"ftp""email"等,或者为数字,或者为None
#参数family为地主族,可以为AF_INET ,AF_INET6 ,AF_UNIX.
#参数socketype可以为SOCK_STREAM(TCP)或者SOCK_DGRAM(UDP)
#参数proto通常为0可以直接忽略
#参数flags为AI_*的组合,比如AI_NUMERICHOST,它会影响函数的返回值
#附注:给参数host,port传递None时建立在C基础,通过传递NULL。
#该函数返回一个五元组(family, socktype, proto, canonname, sockaddr),同时第五个参数sockaddr也是一个二元组(address, port)
# Echo server program
import socket
import sys
HOST = None # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = None
for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC,
socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
af, socktype, proto, canonname, sa = res
try:
#根据getaddrinfo()的返回信息初始化socket
s = socket.socket(af, socktype, proto)
except socket.error, err_msg:
print err_msg #回显异常信息
s = None
continue
try:
#sa是(host,port)的二元组
s.bind(sa)
#监听客户端请求
s.listen(1)
except socket.error, err_msg:
print err_msg
s.close()
s = None
continue
break
if s is None:
print 'could not open socket'
sys.exit(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)# 2)接受数据
if not data: break
conn.send(data)# 3)并返回2中接受到得数据
conn.close()
# Echo client program
import socket
import sys
HOST = 'daring.cwi.nl' # The remote host
PORT = 50007 # The same port as used by the server
s = None
for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM):
af, socktype, proto, canonname, sa = res
try:
s = socket.socket(af, socktype, proto)
except socket.error, msg:
s = None
continue
try:
s.connect(sa)
except socket.error, msg:
s.close()
s = None
continue
break
if s is None:
print 'could not open socket'
sys.exit(1)
s.sendall('Hello, world')# 1)发送数据
data = s.recv(1024)# 4)接受服务器回显的数据
s.close()
print 'Received', repr(data) #打印输出
分享到:
相关推荐
getaddrinfo.c 内部代码 getaddrinfo.c 内部代码 getaddrinfo.c 内部代码 getaddrinfo.c 内部代码
本文实例讲述了python中getaddrinfo()基本用法。分享给大家供大家参考。具体如下: import sys, socket result = socket.getaddrinfo("192.1.1.100", None) print result[0][4] print result 输出结果: ('172.20...
Socket.getaddrinfo, 首先是从之前处理好的域名数据集中读取域名 其次循环挨个处理 做好异常处理 但是结果显然不尽如人意,但是当你手动将单个域名,放进去解析,是没有问题的。 然后我就蒙了,后来经过一圈的查阅...
本文实例讲述了python服务器与android客户端socket通信的方法。... result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM) return [x[4][0] for x in result] host = ”#为空
linux下的socket'编程 实例讲解 强烈推荐 入门者用
本文实例讲述了Python实现通过解析域名获取ip地址的方法。分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: def getIP(domain): ... addrs = socket.getaddrinfo(domain,
android Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated 97/100 android Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address ...
主要介绍了PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法,需要的朋友可以参考下
"getaddrinfo", a function that provides protocol-independent translation from an ANSI host name to an IP address written in C
适用于Android的getaddrinfo()测试 基于。 先决条件 使用SDK脚本创建独立的Android工具链: Android$ ./Sdk/ndk-bundle/build/tools/make_standalone_toolchain.py --arch arm --api 21 --install-dir ~/forge/...
这是一个基于getaddrinfo的DNS服务器。 如果您有一种不常见的方式来解析DNS并将其转换为适当的名称服务器,则很有用。 服务器本身会解析传入的DNS请求,查询getaddrinfo的IP地址,并使用这些地址制定有效的DNS响应...
还包括用于libc变体的getaddrinfo和getnameinfo包装器。 dns-lookup libc的一个小型包装程序,用于执行简单的DNS查找。 您可以使用lookup_host函数获取给定主机名的IP地址列表,并使用lookup_name函数获取给定IP地址...
主要介绍了VUE Error: getaddrinfo ENOTFOUND localhost,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本文实例为大家分享了python获取本机所有IP地址的具体代码,供大家参考,具体内容...# 通过使用socket中的getaddrinfo中的函数获取真真的IP # 下方代码为获取当前主机IPV4 和IPV6的所有IP地址(所有系统均通用) addrs =
使用socket库中的getaddrinfo函数批量将url转ip的脚本工具,简洁方便,省去了大量冗长的手工操作
本文实例讲述了python实现域名系统(DNS)正向查询的方法。分享给大家供大家参考,具体如下: 域名系统(DNS)是一个分布式的数据库,主要是用来把主机名换成IP...在python中定义了一个函数socket.getaddrinfo(),用来完成
redis 连接报错 GET_LIKE_ERROR 处理过程.rar
result = socket.getaddrinfo('www.google.com', None, 0, socket.SOCK_STREAM) counter = 0 for item in result: print "%-2d: %s" % (counter, item[4]) counter += 1 运行结果: 0 : ('74.125.128.106', 0) 1...
《python数据分析基础》第6.4 seaborn的第三个图“成对变量之间的散点图与单变量直方图” '''成对变量散点图和单变量直方图''' iris = sns.load_dataset('iris') sns.pairplot(iris) 在写这个代码时就存在一个疑惑...