Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Poort hergebruiken  (gelezen 1157 keer)

Offline Carharttguy

  • Lid
  • Steunpunt: Nee
Poort hergebruiken
« Gepost op: 2012/03/13, 16:07:52 »
Hallo,

Het is niet écht een programmeerfout ofzo, maar ik heb dus volgend pythonscriptje ergens gevonden:

Citaat
import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):
    """
    The RequestHandler class for our server.

    It is instantiated once per connection to the server, and must
    override the handle() method to implement communication to the
    client.
    """

    def handle(self):
        # self.request is the TCP socket connected to the client
        self.data = self.request.recv(1024).strip()
        print "{} wrote:".format(self.client_address[0])
        print self.data
        # just send back the same data, but upper-cased
        self.request.sendall(self.data.upper())

if __name__ == "__main__":
    HOST, PORT = "localhost", 9999

    # Create the server, binding to localhost on port 9999
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)

    # Activate the server; this will keep running until you
    # interrupt the program with Ctrl-C
    server.serve_forever()

werkt perfect, maar als ik het programmatje afsluit, en ik wil het opnieuw starten, gaat dat niet, omdat de poort niet mooi is afgesloten, nu weet ik niet hoe ik die kan vrijgeven?

Dank iedereen voor het meedenken.

Offline erik1984

  • Lid
    • erik1984
  • Steunpunt: Nee
Re: Poort hergebruiken
« Reactie #1 Gepost op: 2012/03/13, 16:34:55 »
server.shutdown() aanroepen bij het afsluiten?

http://docs.python.org/library/socketserver.html


Offline SeySayux

  • Lid
    • SeySayux.net
  • Steunpunt: Nee
Re: Poort hergebruiken
« Reactie #2 Gepost op: 2012/03/13, 22:02:17 »
* SeySayux kucht en wijst naar RAII
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline profoX

  • Lid
    • wesley
    • Lionslink
  • Steunpunt: Nee
Re: Poort hergebruiken
« Reactie #3 Gepost op: 2012/03/15, 18:50:27 »
aanvullend:

onderliggende probleem is eigenlijk dat TCP verbindingen
in een TIME_WAIT state gaan staan na hun beëindiging,
met de SO_REUSEADDR optie kan je hergebruik direct forceren:
http://www.unixguide.net/network/socketfaq/4.5.shtml
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Re: Poort hergebruiken
« Reactie #4 Gepost op: 2012/03/15, 19:01:13 »
Volgende commando zal nog lopende programma's op de gegeven poort afsluiten:
fuser -k 9999/tcp