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

套接字接上链接循环

时间:2019-09-06 21:20:29      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:客户端连接   客服端   python   add   while   大小   byte   客服   报错   

套接字接上链接循环

#加上连接循环的server端
import socket
#生成一个socket对象
soc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定地址跟端口号
soc.bind(('127.0.0.1',8001))
#监听(半连接池的大小),不是连接数
soc.listen(3)
#等着客户端来连接,conn相当于连接通道,addr是客户端的地址
while True:
    print('等待客户端连接')
    conn,addr=soc.accept()    #卡主,如果没有客户端连接,会一直卡在这,当有连接,才继续往下走
    print('有个客户端连接上了',addr)
    while True:
        try:
            #windows如果客户端断开,会报错,加了try
            #linux如果客户端,断开,不会报错,会收到空,所有当data为空时,也break
            #等待接收,最大收取1024个字节
            data=conn.recv(1024)    #会卡主,当客户端有数据过来,才会执行
            if len(data)==0:  #处理linux客户端断开,如果在window下这段代码根本不会执行(即便是客服端发了空,这个地方也不会走到)
                break
            print(data)
        except Exception:

            break
    # 关闭通道
    conn.close()


# 关闭套接字
soc.close()
#client通信循环
import socket

soc=socket.socket()

soc.connect(('127.0.0.1',8001))
while True:
    in_s=input('请输入要发送的数据:')
    #发送的数据必须是b格式,in_s.encode('utf-8')  把字符串编码成b格式
    #把b格式转成字符串
    # ss=str(b'hello',encoding='utf-8')
    # ss=b'hello'.decode('utf-8')
    # #把字符串转成b格式
    # by=bytes('hello',encoding='utf-8')
    # by='hello'.encode('utf-8')


    soc.send(in_s.encode('utf-8'))

套接字接上链接循环

标签:客户端连接   客服端   python   add   while   大小   byte   客服   报错   

原文地址:https://www.cnblogs.com/aden668/p/11478266.html

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