File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ import socket
2
+ import sys
3
+
4
+
5
+ def server (log_buffer = sys .stderr ):
6
+ address = ('127.0.0.1' , 10000 )
7
+ sock = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
8
+ sock .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
9
+ print >> log_buffer , "making a server on {0}:{1}" .format (* address )
10
+ sock .bind (address )
11
+ sock .listen (1 )
12
+
13
+ try :
14
+ while True :
15
+ print >> log_buffer , 'waiting for a connection'
16
+ conn , addr = sock .accept () # blocking
17
+ try :
18
+ print >> log_buffer , 'connection - {0}:{1}' .format (* addr )
19
+ while True :
20
+ data = conn .recv (16 )
21
+ print >> log_buffer , 'received "{0}"' .format (data )
22
+ if data :
23
+ msg = 'sending data back to client'
24
+ print >> log_buffer , msg
25
+ conn .sendall (data )
26
+ else :
27
+ msg = 'no more data from {0}:{1}' .format (* addr )
28
+ print >> log_buffer , msg
29
+ break
30
+ finally :
31
+ conn .close ()
32
+
33
+ except KeyboardInterrupt :
34
+ sock .close ()
35
+ return
36
+
37
+
38
+ if __name__ == '__main__' :
39
+ server ()
40
+ sys .exit (0 )
You can’t perform that action at this time.
0 commit comments