11#!/bin/python
22import socket
3+ import sys
34from threading import Thread
45
6+ if len (sys .argv ) < 3 :
7+ print ("Run as \n python connect.py <LOGIN> <PASSWORD>" )
8+ sys .exit (0 )
9+
510addr = socket .gethostbyname ("127.0.0.1" )
611port = 4242
712
8- connect_cmd = b"""<command id="connect">
9- <login></login>
10- <password></password>
11- <milliseconds>true</milliseconds>
12- <autopos>false</autopos>
13- <rqdelay>10</rqdelay>
14- <host>tr1.finam.ru</host>
15- <port>3900</port>
16- </command>\0 """
17-
18- print ("connecting to proxy server" )
13+ # 0. Connect to the server
14+ print ("connecting to %s:%x" % (addr , port ))
1915cmd = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
2016cmd .connect ((addr , port ))
2117
22- # 1. Receive data port
18+ # 1. Receive ' data port'
2319r = cmd .recv (32 )
2420dp = int .from_bytes (r , "little" )
2521print ("< " , dp )
2622
27- # 2. Connect to data port
28- print ("connecting to data stream" )
23+ # 2. Connect to ' data port'
24+ print ("connecting to %s:%x" % ( addr , dp ) )
2925rcv = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
3026rcv .connect ((addr , dp ))
3127
@@ -35,11 +31,21 @@ def rcv_print_loop(rcv):
3531 if len (b ) == 0 :
3632 break
3733 else :
38- print (b )
34+ print ("rx: " , b )
3935
4036Thread (target = rcv_print_loop , args = (rcv , )).start ()
4137
38+
4239# 3. Send command
43- print ("sending 'connect' command" )
44- cmd .sendall (connect_cmd )
40+ login , password = sys .argv [- 2 :]
41+
42+ connect_cmd = """<command id="connect">
43+ <login>%s</login>
44+ <password>%s</password>
45+ <host>tr1.finam.ru</host>
46+ <port>3900</port>
47+ </command>\0 """ % (login , password )
48+
49+ cmd .sendall (connect_cmd .encode ('utf-8' ))
4550print ("< " , cmd .recv (256 ))
51+
0 commit comments