soket通信
import socket #socket采用cs结构,client and Server B/S browser and server sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #family 族 # socket.AF_INET ip # socket.AF_INET6 ipv6 # socket.AF_UNIX unix系统间数据传输使用的协议 #type 类型 # socket.SOCK_STREAM TCP # socket.SOCK_DGRAM UDP #被动阻塞式接收 #被动,不主动发起通信,只是等待通信请求 #阻塞,当发起通信的时候,只有完成一次通信才可以进入下一次 #通信三种类型 # 单工 通信只有一条信道,通信双方身份不可逆 BB机 # 半双工 通信只有一条信道,通信双方身份可逆 对讲机 # 全双工 通信只有多条信道,通信双方身份可逆 电话 sock.bind(("",8000)) #双元素元组 # 元素一 是ip 如果为空,绑定当前所有ip # 元素二 是端口,0-65535个端口,通常前1000个时系统预留端口 # 3306 mysql # 22 ssh # 80 http # 224 https # 8000 酷狗音乐 sock.listen(5) #监听 #队列长度 con,add = sock.accept() #接收 #con 一个新的socket对象 #add 客户端的身份 ip和端口 while True: content = con.recv(512) #单次接收最大长度是512字节 print(content.decode()) send_data = input(">>>").encode() con.send(send_data) sock.close()
#coding:utf-8 import socket sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.connect(("10.10.21.131",8000)) # sock.connect(("10.10.21.131",8000)) while True: send_data = input(">>>").encode() sock.send(send_data) content = sock.recv(512) print(content.decode()) sock.close()