s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('127.0.0.1',9999))#步骤1:请求连接服务器
print(s.recv(1024).decode('utf-8'))#步骤2:打印出从服务器发送过来的字节‘welcome’
for data in [b'Michael',b'Tracy',b'Sarah']:#步骤3:也就是循环3次发送给服务器
s.send(data)
print(s.recv(1024).decode('utf-8'))#步骤4:每次都打印出‘hello,xxx’
s.send(b'exit')#步骤5:发送‘exit’给服务器,目的就是为了服务器调出这个循环
s.close()#步骤6:发送完了当然就关闭咯
服务器:
import socket, threading, time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 9999))#搭建一个与客服端的通道
s.listen(5)#有客服端访问了,马上执行,最多访问5个客服端
print('Waiting for connection...')
def tcplink(sock, addr):
print('Accept new connection from %s:%s...' % addr)
sock.send(b'Welcome!')#步骤3:发送Welcome给客服端,也就是客服端一来就看到的
while True:
data = sock.recv(1024)#步骤4:接受客服端发送过来的字节,recv()就是接收字节的意思,
time.sleep(1)
if not data or data.decode('utf-8') == 'exit':#步骤5:如果服务器没接受到‘exit’这个字符串,就忽略这个步骤
break
sock.send(('Hello, %s!' % data.decode('utf-8')).encode('utf-8'))#步骤6:把客服端接受过来的字节加工在发送回去,也就是‘michael’前加上‘hello’
sock.close()#步骤7:接受完了就关闭吧
print('Connection from %s:%s closed.' % addr)
我是李承盛
客户端: import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('127.0.0.1',9999))#步骤1:请求连接服务器 print(s.recv(1024).decode('utf-8'))#步骤2:打印出从服务器发送过来的字节‘welcome’ for data in [b'Michael',b'Tracy',b'Sarah']:#步骤3:也就是循环3次发送给服务器 s.send(data) print(s.recv(1024).decode('utf-8'))#步骤4:每次都打印出‘hello,xxx’ s.send(b'exit')#步骤5:发送‘exit’给服务器,目的就是为了服务器调出这个循环 s.close()#步骤6:发送完了当然就关闭咯
服务器: import socket, threading, time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('127.0.0.1', 9999))#搭建一个与客服端的通道
s.listen(5)#有客服端访问了,马上执行,最多访问5个客服端 print('Waiting for connection...')
def tcplink(sock, addr): print('Accept new connection from %s:%s...' % addr) sock.send(b'Welcome!')#步骤3:发送Welcome给客服端,也就是客服端一来就看到的 while True: data = sock.recv(1024)#步骤4:接受客服端发送过来的字节,recv()就是接收字节的意思,
while True:
我是萌新,琢磨了一天理解的,不知道对不对,不要误导人家咯23333