Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-10-2012, 21:16   #1
Mulder90
Senior Member
 
L'Avatar di Mulder90
 
Iscritto dal: Aug 2008
Città: Firenze
Messaggi: 317
[Python] Server in ascolto/timeout

Ciao a tutti! Sto iniziando ad avvicinarmi alla programmazione di rete in Python e volevo qualche consiglio

Server Code:
Codice:
'''
Created on 22/ott/2012

@author: Lorenzo
'''
from SocketServer import ThreadingMixIn, TCPServer, BaseRequestHandler
import threading
import sys
import time


class ServerPingPong(ThreadingMixIn, TCPServer):
    """ Server TCP Multithread """
    start = time.time()


class PingPongHandler(BaseRequestHandler):
    """ Handler """
    
    def handle(self):
        data = self.request.recv(1024)
        if(data == "ping"):
            data = "pong"
        elif(data == "quit"):
            data = "by"
        else:
            data = "Unknown response"
        currThread = threading.current_thread()
        response = "{0}: {1}".format(currThread, data)
        self.request.sendall(response)
        
    def finish(self):
        ServerPingPong.start = time.time()


if __name__ == "__main__":
    HOST, PORT = 'localhost', int(sys.argv[1])
    server = ServerPingPong((HOST, PORT), PingPongHandler)
    ip, port = server.server_address
    
    server_thread = threading.Thread(target=server.serve_forever)
    server_thread.daemon = True
    server_thread.start()
    
    print "Server ready" 
    
    while True:
        currTime = time.time()
        if (currTime - server.start) > 10:
            server.shutdown()
            break
Client Code:
Codice:
'''
Created on 22/ott/2012

@author: Lorenzo
'''
import socket
import sys


class Client():
    """ Client """
    
    def __init__(self, ip, port):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect((ip, port))
        
    def run(self, message):
        print "Client message: " + message
        try:
            self.sock.sendall(message)
            response = self.sock.recv(1024)
            print "Received response: {0}".format(response)
        finally:
            self.sock.close()
            
if __name__ == "__main__":
    ip , port = str(sys.argv[1]), int(sys.argv[2])
    client = Client(ip, port)
    client.run(str(sys.argv[3]))
Tutto molto minimale per ora
Ecco la domanda:
Come posso gestire il timeout del server in maniera più elegante?
Volevo fare qualcosa del genere(ora come ora funziona ma non mi sembra il massimo ):
il server si avvia e rimane in ascolto per 10 secondi:
- se riceve una richiesta allora resetta il timer così da rimanere in ascolto per altri 10 secondi
- se non riceve richieste termina

Grazie mille!!!
Mulder90 è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2012, 07:43   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Puoi usare un Timer.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Aggiornamento KB5002914 rompe Excel: ecc...
Processo Huawei a Brooklyn: l'FBI mostra...
WhatsApp introduce nuovi temi per le cha...
NVIDIA, Google e Emerald AI uniscono le ...
iPhone 18 Pro Max, il test sulla vapor c...
Fine estate in giardino: le proposte sco...
Batterie allo stato solido dietro l'ango...
Gears of War: E-Day raggiunge la fase Go...
GTA 6 avrà un'edizione fisica, ma...
Pangram arriva su Gmail per identificare...
ASUS ProArt Display OLED: quattro nuovi ...
Saldi Autunnali Mammotion: fino a 369 € ...
La BEI annuncia un nuovo Consiglio di es...
Il board di Meta ordina la rimozione di ...
Sony 400mm f/4.5 e 600mm f/6.3 GM: un gr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v