1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
from twisted.internet import reactor
from twisted.internet.protocol import ClientFactory
from twisted.protocols.basic import LineOnlyReceiver
def printDateAndExit(date):
print 'Server time is', date.strip()
reactor.stop()
def main():
factory = ClientFactory()
factory.protocol = lambda: DateReader(printDateAndExit)
reactor.connectTCP('google.com', 80, factory)
reactor.run()
class DateReader(LineOnlyReceiver):
def __init__(self, dateHeaderReceived):
self.dateHeaderReceived = dateHeaderReceived
def connectionMade(self):
self.transport.write('HEAD / HTTP/1.0\r\n\r\n')
def lineReceived(self, line):
if line.lower().startswith('date:'):
ignored, date = line.split(':', 1)
self.dateHeaderReceived(date)
self.transport.loseConnection()
main()
|