标签:nbsp 对象 .so cal ... 电话 mil host +=
#客户端 import socket client = socket.socket() #声明socket类型,同时生成socket连接对象 client.connect((‘localhost‘,6969)) while True: msg = input(">>:").strip() if len(msg) == 0:continue client.send(msg.encode("utf-8"))#只能发送字节类型数据 data = client.recv(1024) print("recv:",data.decode()) client.close()
#-*-coding:utf-8-*- #服务器端 import socket server = socket.socket() server.bind((‘localhost‘,6969)) #绑定要监听端口 server.listen(5) #监听 print("我要开始等电话了") while True:#第一层 conn, addr = server.accept() # 等电话打进来 # conn就是客户端连过来而在服务器端为其生成的一个连接实例在此处阻塞,一直到客户端链接进来 print(conn, addr) print("电话来了") count = 0 while True:#不停循环收取消息 data = conn.recv(1024) print("recv:",data) if not data:#如果不判断,客户端断开你,会不停接受空数据,发生死循环 print("client has lost...") break#这里断开就会再次回到第一次层,服务端还可以为下一个客户端服务,不能断,实现多用户连接 conn.send(data.upper()) count+=1 if count >10:break server.close()
此时服务器端依然只能同时为一个客户服务,其客户来了,排队需要连接挂起,否则报告
输出:
我要开始等电话了
<socket.socket fd=300, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=(‘127.0.0.1‘, 6969), raddr=(‘127.0.0.1‘, 53167)> (‘127.0.0.1‘, 53167)
电话来了
recv: b‘12‘
输入:
>>:12
recv: 12
>>:
标签:nbsp 对象 .so cal ... 电话 mil host +=
原文地址:http://www.cnblogs.com/zlz-leidaxia/p/7766412.html