本文共 1806 字,大约阅读时间需要 6 分钟。
socket(简称套接字)是进程间通信的一种方式,主要用于不同主机或同一台机器上的进程间通信。常见于QQ等即时通讯工具。
套接字的创建使用以下函数:
socket.socket(AddressFamily, Type)
其中:
from socket import *udpSocket = socket(AF_INET, SOCK_DGRAM) # 创建UDP套接字sendAddr = ('192.168.1.1', 8080) # 指定发送目标IP和端口sendData = "hello" # 发送内容udpSocket.sendto(sendData, sendAddr) # 发送数据udpSocket.close() # 关闭套接字 from socket import *udpSocket = socket(AF_INET, SOCK_DGRAM) # 创建UDP套接字bindAddr = ('', 7788) # 绑定本机特定端口udpSocket.bind(bindAddr) # 绑定本地端口recvData = udpSocket.recvfrom(1024) # 接收数据,1024为接收缓冲大小print(recvData) # 输出接收到的数据udpSocket.close() # 关闭套接字 import socket, sysdest = (' ', 7788) # 目标IP和端口s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) # 设置为广播模式s.sendto("Hi", dest) # 发送广播数据s.close() # 关闭套接字 TCP(传输控制协议)提供可靠的数据传输,适用于稳定通信的场景,如HTTP协议。
from socket import *tcpSerSocket = socket(AF_INET, SOCK_STREAM) # 创建TCP套接字address = ('', 7788) # 绑定本地IP和端口tcpSerSocket.bind(address) # 绑定本地端口tcpSerSocket.listen(5) # 设置监听队列大小newSocket, clientAddr = tcpSerSocket.accept() # 等待客户端连接recvData = newSocket.recv(1024) # 接收客户端数据newSocket.send("thank you !") # 向客户端发送消息newSocket.close() # 关闭与客户端的连接tcpSerSocket.close() # 关闭监听套接字 from socket import *tcpClientSocket = socket(AF_INET, SOCK_STREAM) # 创建TCP套接字serAddr = ('192.168.1.102', 7788) # 指定服务器IP和端口tcpClientSocket.connect(serAddr) # 建立与服务器的连接tcpClientSocket.send("hello") # 向服务器发送消息recvData = tcpClientSocket.recv(1024) # 接收服务器回复tcpClientSocket.close() # 关闭套接字 转载地址:http://urefk.baihongyu.com/