この記事では、Python でのソケット ネットワーク プログラミングの詳細を紹介します (例とともに)。これには一定の参考価値があります。必要な友人は参照できます。お役に立てば幸いです。
#ネットワーク通信の 3 つの要素
IP アドレスは実際には 32 ビットの整数 (IPv4 と呼ばれます) です。192.168.0.1 などの文字列で表される IP アドレスは、実際には 8 ビットごとにグループ化された 32 ビットの整数です。目的は、読み取りを容易にすることです。 . .
IPv6 アドレスは実際には 128 ビットの整数であり、現在使用されている IPv4 のアップグレードされたバージョンであり、文字列で表されます。 2001:0db8:85a3:0042:1000:8a2e:0370:7334 に似ています。ソケット プログラミング
ソケットは、ネットワーク プログラミングの抽象的な概念です。通常、ソケットは「ネットワーク リンクを開く」という意味で使用されます。ソケットを開くには、ターゲット コンピューターの IP アドレスとポート番号を知ってから、プロトコルの種類を指定する必要があります。import socket # socket.gethostname()当不传入参数时,返回本机主机名 print(socket.gethostname()) #DESKTOP-EN0LQJH #域名(英语:Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称 #通过域名查找服务器IP地址 print(socket.gethostbyname('www.baidu.com')) #119.75.216.20 #通过一个IPv4的地址来获取主机信息 print(socket.gethostbyaddr('114.114.114.114')) #通过IP/port组合,访问服务器信息 # 如果是AF_INET则格式为:(address, port),如果为AF_INET6,则返回(address, port, flow info, scope id) print(socket.getaddrinfo('www.xunlei.com',80))
ソケットを使用して単純な Web サーバーを実装する
import socket def reply_info(socketObj): # socketObj.send('ok') with open('hello.html') as f: socketObj.send(f.read().encode('utf-8')) if __name__=="__main__": #1. 创建socket对象 socket_server = socket.socket() #2. 绑定IP和端口 socket_server.bind(('192.168.1.165',9999)) print("服务器端已经启动9999端口......") #3. 监听是否有客户端连接 socket_server.listen(5) while True: # 4. 接受客户端的连接 socket_client,address = socket_server.accept() # 5. 接收客户端发来的信息 data = socket_client.recv(1024) # 6. 与客户端进行交互, 返回给客户端信息 reply_info(socket_server) socket_server.close()
以上がPython でのソケット ネットワーク プログラミングの詳細な紹介 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。