我是模块套接字的新手,正在学习如何实现它。我目前已编写此基本服务器。

import socket

s = socket.socket()
host = "Some IP"
port = 12345
s.bind((host, port))

print "Setting up server on", host + ":" + str(port)

s.listen(5)

while True:
    c, addr = s.accept()

    print 'Got connection from', addr
    c.send('Thank you for connecting.')
    print c.recv(1024)

c.close()

但是,我意识到该服务器一次只能处理一个客户端。为了进一步培训,我想一次处理多个客户。因此,我进行了研究,并遇到了SocketServer库。我还听到了对常规套接字模块进行线程化的方法,因此每个新连接都会创建一个新线程。我发现的信息还不够。请帮助我了解我发现的这两种方法之间的区别以及在哪里使用哪种方法。

提前致谢。

最佳答案

套接字库是非常低级的,您实际上必须自己实现大多数事情。

SocketServer更高级。它在内部使用套接字库,并提供了一个简单的界面,使您一次可以处理多个客户端,而不必担心使用套接字所涉及的所有低级内容。

查看此处的示例,并将其与您自己的代码进行比较。您可能会看到差异。
https://docs.python.org/2/library/socketserver.html#examples

关于python - Python socketserver或带线程的套接字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37689518/

10-09 07:23
查看更多