socket介绍
socket(简称 套接字)是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程通信
创建socket
import socket socket.socket(Family,Type)
参数说明:
- Family: 可以选择AF_INET(用于Internet进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF——INET
- Type: 套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于TCP协议) 或者 SOCK_DGRAM (数据报套接字,主要用于UDP 协议)
import socket #服务器 # 第一步:创建一个TCP的套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 第二步:绑定ip和端口:bind sock.bind(('127.0.0.1', 7799)) print("TCP服务绑定的地址:127.0.0.1:7799") # 第三步:开启监听 sock.listen(100) # 第四步:等待客户端发起请求,建立连接 cil_sock, addr = sock.accept() print("客户端{}建立了链接".format(addr)) # 第五步:接收客户端传递的数据(接收到的是二进制的数据) content = cil_sock.recv(1024) print("客户端发送过来的数据为:", content.decode()) # 第六步:给客户端返回数据 data = '恭喜你请求成功'.encode() cil_sock.send(data) # 关闭处理客户端会话的套接字 cil_sock.close() # 关闭套接字 sock.close()
import socket #客户端 # 第一步:创建一个TCP的套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 第二步:建立连接 sock.connect(('127.0.0.1', 7799)) # 第三步:往服务器发送数据 data = '你好服务端,我是旺旺'.encode() sock.send(data) # 第四步:接收服务器返回的数据 content = sock.recv(1024) print(content.decode())