你好stackoverflow用户,所以我有一个问题,我试图编码一个web服务器,但脚本结束之前,我甚至可以测试它是否工作。所以我的问题是,如何才能使脚本永远运行?你知道吗
#import threading
#import socket
#import signal # Signal support (server shutdown on signal receive)
import multiprocessing
#import queue
def MasterProcessA():
import socket
import multiprocessing
import threading
HOST = '97.107.139.231' # Symbolic name, meaning all available interfaces
PORT = 8080 # Arbitrary non-privileged port
#print(PORT)
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#print 'Socket created'
#Bind socket to local host and port
#try:
socket.bind((HOST, PORT))
#except socket.error as msg:
##print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
#print 'Socket bind complete'
#Start listening on socket
socket.listen(100)
print "starting server"
def ConnProcessA():
print "thread step one"
Conn, Address = socket.accept()
t = threading.Thread(target=ConnectionProcessorA)
print "thread step two"
#t.daemon = True
t.start()
#print("A Got connection from:", Address)
DataRecived = Conn.recv(1024) #receive data from client
DataRecived = bytes.decode(DataRecived) #decode it to string
print DataRecived
Conn.send("HELLO World")
Conn.clouse()
ConnProcessA = threading.Thread(target=ConnProcessA)
#t.daemon = True
ConnProcessA.start()
MasterProcessA = multiprocessing.Process(target=MasterProcessA)
MasterProcessA.start()
你的代码有几个问题。你知道吗
ConnProcessA.start() ConnProcessA.join()
ConnectionProcessorA
不包含在粘贴的代码中。所以我得把这两行注释掉:t = threading.Thread(target=ConnectionProcessorA) t.start()
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ConnProcessA = threading.Thread(target=ConnProcessA) MasterProcessA = multiprocessing.Process(target=MasterProcessA)
DataRecived = Conn.recv(1024) #receive data from client DataRecived = bytes.decode(DataRecived) #decode it to string
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
。正如在the doc最下面所说的。你知道吗相关问题 更多 >
编程相关推荐