socket 客户端服务端循环发送消息

服务端:

from socket import *    #这种插入方法,可以直接省略‘socket.’
ip_d = ('192.168.1.4',999)
lenth_b = 1024
rivers = 5

service_motion = socket(AF_INET,SOCK_STREAM)    #次方法与service_motion = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
''' 
次方法与service_motion = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

'''
service_motion.bind(ip_d)
service_motion.listen(rivers)

conn,addr = service_motion.accept()

while True:
    get_g = conn.recv(lenth_b)  #接受客户端发送过来的数据bian'yi
    print('服务端发送的信息是',get_g.decode('utf8'))  #打印编译后的get_g
    if get_g.decode('utf-8') != 'q':   #判断编译后的值是否是q,如果不是q,则给客户端返回一个值,否则,break
        conn.send(('%s%s' %(get_g,'返回值')).encode('utf8'))
    else:break

conn.close()
service_motion.close()

#服务端的接受与发送都是用conn来完成的
#服务端是先接受,再发送

  

客户端:

from socket import *

ip_d = ('192.168.1.4',999)
lenth_b = 1024
rivers = 5

user = socket(AF_INET,SOCK_STREAM)
user.connect(ip_d)

while True:
    at = input('输入:').strip().lower()  #输入值
    user.send(at.encode('utf8')) #将输入的值编码后发送给服务端
    ge = user.recv(lenth_b)   #接受服务端的返回值,并附给ge
    print('客户端收到的内容是',ge.decode('utf_8'))  #打印ge
    if at != 'q':continue
    else:break

user.close()

#总结
#先运行服务端,然后才能运行客户端
#客户端的发送和链接都是客户端名(user)自己完成的
#客户端 是先发送,然后再接受

  

猜你喜欢

转载自www.cnblogs.com/lhqlhq/p/8945392.html