스레드 된 http 서버를 만들려고합니다. 웹 브라우저를 통해이 서버에 연결할 때 서버가 멈추기 전에 단 한가지를 얻을 수 있습니다. 이것이 일어날 특별한 이유가 있습니까?파이썬 스레드 서버 한 번만 검색
import socket
from threading import Thread
class http():
def __call__():
return 0
def site(self):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("localhost", 5124))
s.listen(2)
except socket.error, (value,message):
if s:
s.close()
return 2
c, addr = s.accept()
s = c.recv(1024)
print s
c.send("test")
c.close()
return s
serve = http()
def happy():
while True:
serve.site()
if __name__ == '__main__':
Thread(target = happy()).start()
같은 것은 내가 OP 프로그램의 모든 코드를 포함한다고 가정이이 프로그램의 동작에 영향 안되는 errno를 9 잘못된 파일 설명 – KI4JGT
을 얻고있다. 'Thread' 생성자에서'happy()'가 사용되면'happy'가 실행되지만 반환되지 않으므로'Thread' 객체는 결코 생성되지 않습니다. 그러나 이것이 의미하는 바는 서버 코드가 새로운 스레드가 아니라 원래의 실행 스레드에서 실행된다는 것입니다. 스레드를 생성 한 후에 아무 일도 일어나지 않기 때문에 프로그램의 동작을 변경하지 않습니다. – Emily