python中socket网络编程的详细介绍(附示例)

python中socket网络编程的详细介绍(附示例)本篇文章给大家带来的内容是关于 python 中 socket 网络编程的详细介绍 附示例 有一定的参考价值 有需要的朋友可以参考一下 希望对你有所帮助 网络通信的三要素 IP 通信的时候 双方必须知道对方的标识 好比发邮件必须知道对方的邮件地址

欢迎大家来到IT世界,在知识的湖畔探索吧!

本篇文章给大家带来的内容是关于python中socket网络编程的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

网络通信的三要素

  • IP

通信的时候, 双方必须知道对方的标识, 好比发邮件必须知道对方的邮件地址。 互联网上每个计算机的唯一标识就是IP地址, 类似 123.123.123.123 。

IP地址实际上是一个32位整数(称为IPv4) , 以字符串表示的IP地址,如 192.168.0.1 实际上是把32位整数按8位分组后的数字表示, 目的是便于阅读。

IPv6地址实际上是一个128位整数, 它是目前使用的IPv4的升级版, 以字符串表示。类似于 2001:0db8:85a3:0042:1000:8a2e:0370:7334 。

  • 端口port

在两台计算机通信时, 只发IP地址是不够的, 因为同一台计算机上跑着多个网络程序。 一个IP包来了之后, 到底是交给浏览器还是, 就需要端口号来区分。

每个网络程序都向操作系统申请唯一的端口号, 这样, 两个进程在两台计算机之间建立网络连接就需要各自的IP地址和各自的端口号。

  • TCP/UDP协议

为了把全世界的所有不同类型的计算机都连接起来, 就必须规定一套全球通用的协议,大家把互联网的协议简称TCP/IP协议

socket编程

Socket是网络编程的一个抽象概念。 通常我们用一个Socket表示“打开了一个网络链接”, 而打开一个Socket需要知道目标计算机的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))

python中socket网络编程的详细介绍(附示例)

用socket实现简易的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中socket网络编程的详细介绍(附示例)的详细内容,更多请关注其它相关文章!

更多技巧请《转发 + 关注》哦!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/91618.html

(0)
上一篇 2024年 11月 26日 下午7:23
下一篇 2024年 11月 26日 下午7:55

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信