UDP client-server problem

WIWA wim_wauters at skynet.be
Tue Jul 15 23:18:32 CEST 2003


Hi,

I want to make a UDP client server application that is conform to
RFC868 (Time protocol). Both the UDP client and UDP server are in a
test phase.

The question is: when I add  "svrsocket.sendto(resultaat, (ip, port))"
in the UDP server, my application closes while running. When I leave
it away, it works fine. I really need this statement as the purpose is
that a client sends sth to the server and the server sends back the
time ticks.

Anybody an idea how I can modifu my client/server so that it works?

Regards,

Wim


Here is the server:

# UDP server example
import time
import socket
import string
import string

class Tijd:
   def __init__(self, hours=0,minutes=0,seconds=0):
       self.hours=hours
       self.minutes=minutes
       self.seconds=seconds

   def aantal_seconden(self):
       x = time.time()
       y=(1970, 1, 1, 1, 0, 0, 0, 0, 0)
       y=time.mktime(y)
       resultaat=x-y
       return resultaat

if __name__=="__main__":
   tijd=Tijd()
   resultaat=tijd.aantal_seconden()
   print 'resultaat',resultaat

   port=37

   svrsocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   svrsocket.bind(('', port))

   hostname = socket.gethostname()
   ip = socket.gethostbyname(hostname)
   print 'TOD server is at IP adress: ', ip

   tijd=time.ctime()
   tijd=string.split(time.ctime())
   print 'The current time is', tijd[3]
   print 'Listening for TOD-requests on port %s ...' %port

   while 1:
       data, address = svrsocket.recvfrom(256)
       print 'Received a TOD-request from modem with IP-address %s'
%address[0]
       print 'Sending back the time to modem with
IP-address',address[0]
       print "time", resultaat
       svrsocket.sendto(resultaat, (ip, port))


And here is the client:

# UDP client example
import socket
port=37
clisocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
    data = raw_input("Type something: ")
    if data:
        clisocket.sendto(data, ("127.0.0.1", port))
    else:
       
        break
s.close()




More information about the Python-list mailing list