Jag har gjort en UDP-server och en UDP-client enligt RFC867, även kallat Daytime Protocol. Där servern ska skicka ut tid, dag och datum till en klient som anropar servern.
Här är servern:
Kod:
import socket, datetime
PORT=13
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("",PORT))
while True:
data, addr=s.recvfrom(1024)
time = datetime.datetime.now()
s.sendto(time.strftime("%H:%M %A %d-%m-%Y"),addr)
s.close()
Problemet med allt detta är att klienten inte ska skicka något. Den ska ansluta sig till server utan att skicka något och få svar om tid och datum tillbaka.
Någon som vet hur jag ska lösa detta? Något tips?
Jag har kollat runt en hel del på Internet men inte hittat något vettigt.
Problemet med allt detta är att klienten inte ska skicka något. Den ska ansluta sig till server utan att skicka något och få svar om tid och datum tillbaka.
Om du tror det ska du nog läsa RFCn igen. Där står det nämligen såhär när det gäller UDP:
Citat:
Ursprungligen postat av RFC867
UDP Based Daytime Service
Another daytime service service is defined as a datagram based
application on UDP. A server listens for UDP datagrams on UDP port
13. When a datagram is received, an answering datagram is sent
containing the current date and time as a ASCII character string (the
data in the received datagram is ignored).
Faktum är att det är väldigt svårt att göra annorlunda med UDP, eftersom det help beror på utbyte av datagram.
F.ö. har jag en rekommendation, och det är att du gör mer än ett försök i klienten, med en timeout för varje försök. 3 försök kan vara lagom.
Faktum är att det är väldigt svårt att göra annorlunda med UDP, eftersom det help beror på utbyte av datagram.
F.ö. har jag en rekommendation, och det är att du gör mer än ett försök i klienten, med en timeout för varje försök. 3 försök kan vara lagom.
Den ursprungliga koden från mitt första inlägg fungerar, men en annan kille som kollade på det tipsade mig om att klienten inte ska behöva skicka något.
Själv så kunde jag inte komma på något annat sätt än jag gjorde i mitt första inlägg. Koden där anses alltså som korrekt enligt dig? Vill bara kolla så jag fattat det rätt.
Den ursprungliga koden från mitt första inlägg fungerar, men en annan kille som kollade på det tipsade mig om att klienten inte ska behöva skicka något.
Den personen ska nog läsa på om hur datagrambaserade protokoll fungerar.
Citat:
Ursprungligen postat av micronew
Själv så kunde jag inte komma på något annat sätt än jag gjorde i mitt första inlägg. Koden där anses alltså som korrekt enligt dig? Vill bara kolla så jag fattat det rätt.
Koden är helt korrekt enligt vad jag kan se. Jag antar att du kunnat konstatera att den fungerar?
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Stöd Flashback
Swish: 123 536 99 96Bankgiro: 211-4106
Stöd Flashback
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!