操作系统 Ubuntu 15.10 IDE & editor JetBrains PyCharm 5.0.2 ipython3 Python版本 python-3.4.3
导入socket模块
####server####
import socket s = socket.socket () s.bind(('127.0.0.1',30021)) 绑定在127.0.0.1:30021上
s.listen(10) #监听 0是不启用的
查看端口
netstat -ntl 激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:30021 0.0.0.0:* LISTEN
#阻塞的方式接收客户端 为了能够与客户端通信所创建的套接字文件,以及客户端地址
sc,client = s.accept() #这时进程是等待连接状态的
####client####
import socket c = socket.socket() c.connect(('127.0.0.1',30021)) #客户端连接后server进程退出连接状态
#####server####在server执行可以查看连接状态
print(sc) <socket.socket fd=9, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 30021), raddr=('127.0.0.1', 36332)> print(client)
('127.0.0.1', 49612) #客户端连接端口49612 是随机的
查看连接
netstat -tan
激活Internet连接 (服务器和已建立连接的)
tcp 0 0 127.0.0.1:30022 127.0.0.1:49612 ESTABLISHED
tcp 0 0 127.0.0.1:49612 127.0.0.1:30022 ESTABLISHED
#####server#####
data=sc.recv(1024)
#####client#####
c.send(b"form client")
#####server#####
print(data)
b'form client'
关闭连接
s.close()
c.close()