标签:流程 服务器 stream hostname 程序 style 接收 pre family
低级别的网络服务
高级别的网络服务
socket又称“套接字”,应用程序通过“套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
import socket import sys # 创建socket对象
# family:套接字家族,AF_UNIX或者AF_INET(默认)
# type:套接字类型,面向连接的还是面向非连接的,SOCK_STREAM(默认)或者SOCK_DGRAM
# protocol:一般不填默认为0
socket_obj = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #获取本地主机名,或者使用ip host = socket.gethostname() port = 9999 # 重用ip和端口,防止报“Address already in user” 的错误 sobj.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) #绑定端口,参数是一个元组 socket_obj.bind((host,port)) #设置最大连接数,超过后排队 socket_obj.listen(5) while True: #创建客户端连接 clientsocket,addr = socket_obj.accept() print(‘连接地址:%s‘%str(addr)) clientsocket.send("hello".encode(‘utf-8‘)) clientsocket.close()
客户端
import socket import sys #创建socket对象 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #获取本地主机名 host = socket.gethostname() #设置端口号 port = 9999 #连接服务,指定主机和端口 s.connect((host,port)) #接收小于1024字节的数据 msg = s.recv(1024) s.close() print(msg.decode(‘utf-8‘))
标签:流程 服务器 stream hostname 程序 style 接收 pre family
原文地址:https://www.cnblogs.com/hf8051/p/11770448.html