本文就介绍了python如何实现客户端和服务端通信基础内容:从客户端向服务发送一个字符串, 服务器收到后将字符串重新发送给客户端,同时,在连接建立之后,服务器可以向客户端发送任意多的字符串。
Python 提供了两个级别访问的网络服务:
1、低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统 Socket 接口的全部方法。
2、高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。
socket()函数
Python 中,我们用 socket()函数来创建套接字,语法格式如下:
socket.socket([family[, type[, proto]]])
s.bind() 绑定地址(host,port)到套接字, 在 AF_INET下,以元组(host,port)的形式表示地址。
s.listen() 开始 TCP 监听。backlog 指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为 1,大部分应用程序设为 5 就可以了。
s.accept() 被动接受TCP客户端连接,(阻塞式)等待连接的到来
源代码
服务端:
1、使用 socket 模块的 socket 函数来创建一个 socket 对象,它可以通过调用其他函数来设置一个 socket 服务。
2、通过调用 bind(hostname, port) 函数来指定服务的 port(端口)。
3、调用 socket 对象的 accept 方法。该方法等待客户端的连接,并返回 connection 对象,表示已连接到客户端。
import threading
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 创建 socket 对象,选择 AF_INET 的目的就是使用 IPv4 进行通信,SOCK_STREAM提供面向连接的稳定数据传输
ip_port = ('127.0.0.1'