Ciao, sono ancora qui, ho un po' di problemi, ti posto ciò che ho scritto fin'ora:

Codice Che andrà sul client windows XP:

codice:
#!/usr/bin/env python
import wx
import wx.html
import sys
from socket import *

class Frame(wx.Frame):
  def __init__(self,s,parent, id, title):
    print "Frame __init__"
    
    dlg = wx.MessageDialog(None, 'Procedo con il backup?', 'Caladan Backup Utility', wx.YES_NO | wx.ICON_QUESTION)
    result = dlg.ShowModal()
    dlg.Destroy()
    if(result == wx.ID_YES): 
        window_width = 300;
        window_height = 200;
        wx.Frame.__init__(self, parent, id, title, (0,0),(window_width,window_height))
        
        status = self.CreateStatusBar(2, 0, id);
        status.SetStatusText('gianiaz.net (C)')
        status.SetStatusText('giovanni b lenoci', 1)
        panel = wx.Panel(self);
        panel.SetBackgroundColour('White')
        self.html = wx.html.HtmlWindow(self, -1, pos=wx.DefaultPosition,size=(295, 150))
        self.setHTML('prova');

    else:
      self.Close()
      
  def setHTML(self, html):
      self.html.SetPage(html)

  def OnCloseMe(self, event):
    self.Close(True)
  
  def OnCloseWindow(self, event):
    self.Destroy()    

class messageReceived(wx.PyCommandEvent):
  def __init__(self, evtType, id):
    wx.PyCommandEvent.__init__(self, evtType, id)

class App(wx.App):
  def __init__(self, s, redirect=True, filename=None):
    self.s = s;
    print s;
    wx.App.__init__(self, redirect, filename)
  def OnInit(self):
    print "OnInit"
    self.frame = Frame(s=self.s, parent=None, id=1, title='Startup')
    self.frame.Show()
    self.SetTopWindow(self.frame)
    return True

  def OnExit(self):
    print "OnExit"

if __name__ == '__main__':
    host = "localhost"
    port = 21567
    buf = 1024
    addr = (host,port)
    UDPSock = socket(AF_INET,SOCK_DGRAM)
    UDPSock.bind(addr)
    data,addr = UDPSock.recvfrom(buf)
    # Receive messages
    while 1:
      data,addr = UDPSock.recvfrom(buf)
      print data
      if data:
        if(data == 'open') :
          opened = True
          app = App(redirect=False, filename=None, s=UDPSock)
          app.MainLoop()
          print 'hai chiuso la finestra'
          UDPSock.close()
          break
e quello sul server che manderà dei messaggi al client

codice:
#!/usr/bin/env python
import sys
from socket import *



host = "localhost"
port = 21567
buf = 1024
addr = (host,port)    
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.sendto('ping',addr)
# Send messages
while (1):
  data = raw_input('>> ')
  if not data:
      break
  else:
      if(UDPSock.sendto(data,addr)):
          print "Sent :",data
  # Close socket
UDPSock.close()
Ovviamente il codice è da sistemare, e non va ancora nulla...

Il problema che vorrei risolvere al momento è ricevere il messaggio sulla finestra.
Avevo pensato di mettere una finestra html e far passare dei messaggi.

Ma subito dopo l'init, sembra che i dati non arrivino più (ho provato a mettere un print data).

Probabilmente la mia scarsa conoscenza delle wxpython mi manda in confusione.
Penso che il problema sia che dopo l'init, mi trovo all'interno del Mainloop, quindi non ricevo più i dati.
Come dovrei fare?
Creare un evento che viene scaturito all'arrivo di un messaggio?
In tal caso dove verifico l'arrivo del messaggio?
Mi viene stupidamente da pensare che dovrei far arrivare la socket al mainloop, e da li verificare che sia arrivato qualcosa...

Anche se sono lontano dalla soluzione potete darmi qualche riferimento su cosa studiare per chiudere il cerchio?

ciao e grazie