Python: Version 2.7.6
(Jag hade tidigare v3.nånting installerat, men avinstallerade det och installerade 2.7.6 istället.)
Jag håller på att bli lite tokig på det här...
Så fort jag har med Thread.start_new_thread så ger det felmeddelandet:
"AttributeError: type object 'Thread' has no attribute 'start_new_thread' "
Jag har testat egen kod och även en massa exempel från nätet, men det blir samma sak.
Så här ser nuvarande koden ut:
Kod: Markera allt
#!/usr/bin/python
from socket import *
#import Thread
from threading import Thread
def handler(clientsocket, clientaddr):
print("Accepted connection from: ", clientaddr)
while 1:
data = clientsocket.recv(1024)
if not data:
break
else:
print(data)
msg = "You sent me: %s" % data
clientsocket.send(msg)
clientsocket.close()
if __name__ == "__main__":
host = '127.0.0.1'
port = 23
buf = 1024
addr = (host, port)
serversocket = socket(AF_INET, SOCK_STREAM)
serversocket.bind(addr)
serversocket.listen(2)
while 1:
print("Server is listening for connections\n")
clientsocket, clientaddr = serversocket.accept()
Thread.start_new_thread(handler, (clientsocket, clientaddr))
serversocket.close()
Den förra såg ut såhär:
Kod: Markera allt
#!/usr/bin/python
from socket import *
from threading import Thread
test_times = 5
BUFF = 1024
HOST = '127.0.0.1'# must be input parameter @TODO
PORT = 23 # must be input parameter @TODO
def response(key):
return 'Server response: ' + key
def handler(clientsock,addr):
while 1:
data = clientsock.recv(BUFF)
if not data: break
print(repr(addr) + ' recv:' + repr(data))
clientsock.send(response(data))
print(repr(addr) + ' sent:' + repr(response(data)))
if "close" == data.rstrip(): break # type 'close' on client console to close connection from the server side
clientsock.close()
print(addr, "- closed connection") #log on console
if __name__=='__main__':
ADDR = (HOST, PORT)
serversock = socket(AF_INET, SOCK_STREAM)
serversock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
serversock.bind(ADDR)
serversock.listen(5)
while test_times > 0:
print('waiting for connection... listening on port', PORT)
clientsock, addr = serversock.accept()
print('...connected from:', addr)
test_times = 0
try:
Thread.start_new_thread(handler, (clientsock, addr))
print(test_times)
test_times = 0
except Exception as errtxt:
print(errtxt)
test_times = 0
Gemensamma nämnaren är att det fungerar ända tills jag ansluter till något av dessa script, som agerar server.
Då dyker felmeddelandet upp.
Någon som vet var 17 felet är?
