实验要求:
(1)客户端发送给服务器请求,发送表征身份的用户名和密码(“admin”,“123456”);
(2)服务器根据客户端发来的信息验证身份,如果验证错误,返回“refuse”字符串,并且断开连接信道;
(3)如果通过身份验证,服务器向客户端返回“accept”字符串;
(4)客户端在收到“accept”后,发送服务请求号,“1”表示请求文件传输服务,“2”表示请求数据库查询服务;
(5)服务器收到服务请求号后,用打印语句来模拟服务的动作,完成后返回“finish”字符串;
(6)客户端收到“finish”串后,向服务器端发送“byebye”,终止连接;
(7)双方中断连接,关闭socket。
server:
import socket
import threading
import time
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 12345))
server_socket.listen(5)
print("Waiting for connection...")
def tcplink(sock, addr):
print('Accept new connection from %s:%s...' % addr)
sock.send(b'welcome!')
name = sock.recv(1024).decode('utf-8')
sname = str(name)
time.sleep(1)
psd = sock.recv(1024).decode('utf-8')
spsd = str(psd)
print("The loginname is %s has login, and loginpasswd is %s." % (sname, spsd))