我对套接字非常新,并且一直在做一个基于python的小项目。
我写了一个简单的脚本,就是这样:
def runserver():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
print(msg[0])
s.bind((host, port))
s.listen(10)
while True:
client, address = s.accept()
# !clients.append(client)
request = client.recv(1024)
params = request.split("|")
if params[0] == "reg_user":
print(params[1] + ", " + params[2])
client.send("Registration Request Received.")
elif params[0] == "login":
print(params[1] + ", " + params[2])
client.send("Login Request Received.")
# !Handles administrative login
elif params[0] == "admin_login":
print("Administrator requested login.")
res = admin_login(params[1], params[2])
if res == 1:
client.send("Login Successful!")
print("Login Successful!")
else:
client.send("Login Failed!")
print("Login Failed!")
client.close()
s.close()
# !main function
if __name__ == "__main__":
runserver()
我的问题是,行
client.close()
此行是否会妨碍代码的性能? 我的意思是,每次进行套接字连接时,它都会被连接,然后断开连接。这意味着,如果应用程序需要进一步通信,则需要在进行任何进一步的业务之前重新连接到套接字。
我需要知道这是否会影响性能,如果是这样,如何克服这个问题?我想基本上使用持久连接,即在登录(成功)之后,不会断开连接,应用程序(客户端)和服务器可以不间断地通话。
问题的第二部分是:
s.listen(10)
我允许积压10个连接。此待办事项的阈值是多少?在现实生活中,服务器通常可以处理多少连接?