码迷,mamicode.com
首页 > 其他好文 > 详细

day08-socket简单编程

时间:2017-11-05 18:32:59      阅读:126      评论:0      收藏:0      [点我收藏+]

标签: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
>>:

 

day08-socket简单编程

标签:nbsp   对象   .so   cal   ...   电话   mil   host   +=   

原文地址:http://www.cnblogs.com/zlz-leidaxia/p/7766412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!