1.socket流程介绍
这里主要介绍以TCP为主的socket,即基于连接的会话,流程如图,解释如下:
- step1 服务端需要创建一个socket对象;用bind()函数绑定一对用于连接的IP地址和端口号port;然后用listen()函数侦听打开的端口;用accept()函数接收来自客服端的请求,此时返回两个参数,一个是客户端的ip/port, 一个是客户端与服务端之间建立的连接,后续的通信都是这个连接进行的。接下来客户端就可以向服务器发起请求了。
- step2 客户端同样需要创建一个socket对象,并用connet()方法连接服务器,传入服务器的ip/port。
- step3 接下来客户端服务端之间就可以通过各自的socket对象,用recv()和sendall()函数发送数据了。
- step4 通信结束以后,客户端与服务端的socket都需要进行close()操作,以关闭连接。
2.Python代码实现
服务端
关于如何查看本地IP地址:windows: 命令行用ipconfig命令, 即可查看
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
服务端
localhost:服务端的IP地址,str型
port: 服务端开放的端口号,int型
"""
import socket
# 创建服务端socket对象
server_sk = socket.socket()
# bind()/listen()/sccept()
server_sk.bind((localhost, port))
server_sk.listen()