socket:
问题一:什么是socket
socket(简称 套接字 ) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程
间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的例如我们每天浏览网页、QQ 聊天、收发 email 等等
socket套接字:
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通
信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用
程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口
如何创建一个socket:
import socket
sock = socket.socket(Family, Type))
参数说明:
Family:可以选择 AF_INET(用于 Internet 进程间通信) 或者 AF_UNIX(用于同一台机器进程间通信),实际工作中
常用AF_INET
Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于 TCP 协议)或者SOCK_DGRAM(数据报套接字,主要用
于 UDP 协议)
一,基于socket 创建一个tcp的服务器
import socket # 创建一个套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建一个tcp的服务器 sock.bind(("127.0.0.1",1919)) # 设置监听,访问的个数 sock.listen(20) print("服务器已经启动了:.......") # 等待客户端发起链接请求,accept 接收到的是一个元组,一个是链接的套接字,一个是链接的 # 对象 client_sock,addr = sock.accept() print(f"客户端{addr}已经建立链接") # 接收客户端请求信息. result = client_sock.recv(1024 * 10) print(f"客户端的请求信息{result.decode()}") # 服务器返回数据给客户端. client_sock.send("12334".encode()) # 断开链接 client_sock.close() sock.close()
二,基于sockt创建一个tcp的客户端
""" 结合socket 实现一个tcp的客户端""" import socket # 创建一个套接字 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 链接服务器 sock.connect(("127.0.0.1",1919)) data = input("请输入你需要传输的数据:") # 给服务器发送请求的信息 sock.send(data.encode()) # 读取客户端返回的信息 result = sock.recv(1024 * 10) print(f"server response :{result.decode()}")
标签:socket,AF,python,sock,间通信,socke,接字,客户端 From: https://www.cnblogs.com/manxingsir/p/16965233.html