服务端:
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)自己完成的
#客户端 是先发送,然后再接受