python-socket
Posted wangzihong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-socket相关的知识,希望对你有一定的参考价值。
socket
#client import socket import socket client = socket.socket() #定义协议类型 声明socket类型同时生产链接对象 client.connect((‘localhost‘,9999)) #传入一个元祖类型的地址 client.send("上海".encode(‘utf-8‘)) #传数据 data = client.recv(1024) #接受数据 1024字节 print("recv:",data.decode()) #打印数据 client.close() #server import socket server = socket.socket() server.bind((‘localhost‘,9999)) #绑定端口 server.listen() #监听端口 print("开始等待") conn,addr = server.accept() #等待 返回两个标记 连接标记位,连接地址 #conn就是客户端连接过来服务端为其生成的一个实例 print(conn,addr) print("有客户接入") data = conn.recv(1024) #接受数据 print("recv:",data) conn.send(data.upper()) server.close()
发送和接受多次
#server import socket server = socket.socket() server.bind((‘localhost‘,9999)) #绑定端口 server.listen() #监听端口 print("开始等待") conn, addr = server.accept() # 等待 返回两个标记 连接标记位,连接地址 # conn就是客户端连接过来服务端为其生成的一个实例 print(conn, addr) print("有客户接入") while True: data = conn.recv(1024) #接受数据 print("recv:",data) conn.send(data) server.close() #client import socket import socket client = socket.socket() #定义协议类型 声明socket类型同时生产链接对象 client.connect((‘localhost‘,9999)) #传入一个元祖类型的地址 while True: msg = input(">>>").strip() if len(msg) == 0:continue client.send(msg.encode(‘utf-8‘)) #传数据 data = client.recv(1024) #接受数据 1024字节 print("recv:",data.decode()) #打印数据 client.close()
服务端:
1.声明实例 写入地址簇 family address
2.绑定ip地址和端口
3.开始监听
4.conn,addr = server.accept() 没有连接阻塞
5.循环
6.conn.recv(8192) 不超过8192 8k 接受数据
7.将接受的数据发送出去 conn.send
客户端:
1.声明实例
2.开始连接 client.connect((serverip,port))
3.发送接收数据
import socket,os server = socket.socket() server.bind((‘localhost‘,9999)) server.listen() while True: conn,addr = server.accept() print("new conn:",addr) while True: data = conn.recv(1024) if not data: print("客户端已断开") break print("执行指令",data) cmd_res = os.popen(data.decode()).read() if len(cmd_res) == 0: #客户端输入错误时长度为0 cmd_res = "cmd has no output..." conn.send(cmd_res.encode(‘utf-8‘)) import socket client = socket.socket() client.connect((‘localhost‘,9999)) while True: cmd = input(">>>").strip() if len(cmd) == 0 :continue client.send(cmd.encode(‘utf-8‘)) cmd_res = client.recv(1024) print(cmd_res.decode()) client.close()
以上是关于python-socket的主要内容,如果未能解决你的问题,请参考以下文章