Python (八)网络编程

2023-12-14 23:35:40


程序员的公众号:源1024,获取更多资料,无加密无套路!

最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等
获取方式: 关注公众号并回复 666 领取,更多内容持续奉上


Python 提供了两个级别访问的网络服务:

低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。

高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

?socket()函数

socket.socket([family[, type[, proto]]])
  • family: 套接字家族可以是 AF_UNIX 或者 AF_INET
  • type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAMSOCK_DGRAM
  • proto: 一般不填默认为0.

bind()

绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。
listen()开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1
accept()被动接受TCP客户端连接,(阻塞式)等待连接的到来
connect()主动初始化TCP服务器连接,一般address的格式为元组(hostname,port)
recv()接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量
send()发送TCP数据,将string中的数据发送到连接的套接字
sendall()完整发送TCP数据。将string中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据
close()关闭套接字

服务端:

import socket
#创建套接字
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定地址
server_socket.bind(('localhost',8888))

server_socket.listen(3)

while True:
    socket,addr = server_socket.accept()

    print('连接地址: %s' % str(addr))

    #发送数据
    msg='你好,这里是Python socket通信'+ "\r\n"
    socket.sendall(msg.encode('utf-8'))
    #关闭连接
    socket.close()

客户端:

import socket

# 创建 socket 对象
socket_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务器
socket_client.connect(('localhost', 8888))

# 接收服务端的数据
msg = socket_client.recv(1024)
#关闭连接
socket_client.close()

print (msg.decode('utf-8'))

#输出
你好,这里是Python socket通信


系列文章索引

Python (一) 操作Mysql

Python (二) 读写excel文件

Python (三) 读写csv文件

Python (四)读写word

Python (五) 处理图像

Python (六) 绘图?

Python(七)操作JSON?


?

文章来源:https://blog.csdn.net/feikillyou/article/details/135005563
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。