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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#!/usr/bin/env python
#-*-coding:UTF-8-*-
"""
@Item   :  Socket Daemon
@Author :  william
@Group  :  DEV Group
@Date   :  2013-10-16
@Funtion:
Getting kvm instances port
"""
import  sys,os,time,redis,traceback,json,threading,socket
from  hscloud.hsnovnc  import  utils
from  hscloud  import  log
LOG  =  log.get_logger(__name__)
class  MySocket( object ):
def  __init__( self , proto  =  0 ):
if  proto  = =  0 :
self .sock  =  socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self .sock.setblocking( True )
else :
self .sock  =  socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self .sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,  1 )
# The socket binding host and port
def  my_bind( self , host, port):
try :
self .sock.bind((host, port))
except  socket.error, e:
LOG.error(e)
return  -  1
return  0
#listen TCP port ,default
def  my_listen( self , num  =  1024 ):
try :
self .sock.listen(num)
except  socket.error, e:
LOG.error(e)
return  -  1
return  0
#connect setting timeout
def  my_connect( self , host, port, time_out  =  - 1 ):
try :
if  time_out  = =  - 1 :
self .sock.setblocking( 1 )
else :
self .sock.settimeout(time_out)
self .sock.connect((host, port))
except  socket.error, e:
LOG.error(e)
return  -  1
return  0
#accept teturn client address
def  my_accept( self , time_out  =  - 1 ):
addr  =  []
try :
if  time_out  = =  - 1 :
self .sock.setblocking( 1 )
else :
self .sock.settimeout(time_out)
client_sock, addr  =  self .sock.accept()
except  socket.error, e:
LOG.error(e)
return  client_sock, addr
#recv setting timeout
def  my_recv( self , buf_size, time_out  =  - 1 ):
buf  =  ''
try :
if  time_out  = =  - 1 :
self .sock.setblocking( 1 )
else :
self .sock.settimeout(time_out)
buf  =  self .sock.recv(buf_size)
except  Exception, e:
LOG.error(e)
return  buf
#send setting timeout
def  my_send( self , buf, time_out  =  - 1 ):
try :
if  time_out  = =  - 1 :
self .sock.setblocking( 1 )
else :
self .sock.settimeout(time_out)
send_len  =  self .sock.send(buf)
return  send_len
except  Exception, e:
LOG.error(e)
return  -  1
#close
def  my_close( self , time_out  =  - 1 ):
try :
if  time_out  = =  - 1 :
self .sock.setblocking( 1 )
else :
self .sock.settimeout(time_out)
self .sock.close()
except  socket.error, e:
LOG.error(e)
return  -  1
return  0
class  sock_thread(threading.Thread):
def  __init__( self , host, port,buf):
threading.Thread.__init__( self )
self .host  =  host
self .port  =  port
self .buf  =  buf
def  run( self ):
sock  =  MySocket()
sock.my_bind( self .host,  self .port)
sock.my_listen( 20 )
LOG.info( 'The socket has been connected' )
while  True :
conn, addr  =  sock.my_accept()
while  True :
data  =  conn.recv( self .buf)
if  not  data:
break
else :
try :
data  =  json.loads(data)
if  data[ 'Node' ][ 'UUID' ]:
port  =   utils.get_vnc_port(data[ 'Node' ].get( 'UUID' , None ))
data[ 'Node' ][ 'port' =  port
LOG.info(json.dumps(data))
conn.send(json.dumps(data))
else :
conn.send()
except :
break
conn.close()
sock.my_close()
class  socket_demo( object ):
def  __init__( self ):
host   =   utils.get_net_ip()
self .host  =   host
self .port  =  10086
self .buf  =  4096
def  work( self ):
self .sock  =  sock_thread( self .host,  self .port, self .buf)
self .sock.start()
time.sleep( 0.5 )
def  init():
st  =  socket_demo()
st.work()
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/env python
#-*-coding:UTF- 8 -*-
"" "
@Item   :  Socket Daemon
@Author :  william
@Group  :  DEV Group
@ Date    :   2013 - 10 - 16
@Funtion:
Getting kvm instances port
"" "
import  sys,os,time,redis, trace back,json,threading,socket
LOG = log.get_logger(__name__)
class  MySocket(object):
def __init__(self, proto =  0 ):
if  proto ==  0 :
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setblocking(True)
else :
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,  1 )
# The socket binding host and port
def my_bind(self, host, port):
try :
self.sock.bind((host, port))
except socket.error, e:
LOG.error(e)
return  1
return  0
#listen TCP port , default
def my_listen(self, num =  1024 ):
try :
self.sock.listen(num)
except socket.error, e:
LOG.error(e)
return  1
return  0
#connect setting timeout
def my_connect(self, host, port, time_out = - 1 ):
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
self.sock.connect((host, port))
except socket.error, e:
LOG.error(e)
return  1
return  0
#accept teturn client address
def my_accept(self, time_out = - 1 ):
addr = []
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
client_sock, addr = self.sock.accept()
except socket.error, e:
LOG.error(e)
return  client_sock, addr
#recv setting timeout
def my_recv(self, buf_size, time_out = - 1 ):
buf =  ''
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
buf = self.sock.recv(buf_size)
except Exception, e:
LOG.error(e)
return  buf
#send setting timeout
def my_send(self, buf, time_out = - 1 ):
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
send_len = self.sock.send(buf)
return  send_len
except Exception, e:
LOG.error(e)
return  1
#close
def my_close(self, time_out = - 1 ):
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
self.sock.close()
except socket.error, e:
LOG.error(e)
return  1
return  0
class  sock_thread(threading.Thread):
def __init__(self, host, port,buf):
threading.Thread.__init__(self)
self.host = host
self.port = port
self.buf = buf
def run(self):
sock = MySocket()
sock.my_bind(self.host, self.port)
sock.my_listen( 20 )
LOG.info( 'The socket has been connected' )
while  True:
conn, addr = sock.my_accept()
while  True:
data = conn.recv(self.buf)
if  not data:
break
else :
try :
data = json.loads(data)
if  data[ 'Node' ][ 'UUID' ]:
port =  utils.get_vnc_port(data[ 'Node' ]. get ( 'UUID' ,None))
data[ 'Node' ][ 'port' ] = port
LOG.info(json.dumps(data))
conn.send(json.dumps(data))
else :
conn.send()
except:
break
conn.close()
sock.my_close()
class  socket_demo(object):
def __init__(self):
host  =  utils.get_net_ip()
self.host =  host
self.port =  10086
self.buf =  4096
def work(self):
self.sock = sock_thread(self.host, self.port,self.buf)
self.sock.start()
time.sleep( 0.5 )
def init():
st = socket_demo()
st.work()
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/usr/bin/env python
#-*-coding:UTF- 8 -*-
"" "
@Item   :  Socket Daemon
@Author :  william
@Group  :  DEV Group
@ Date    :   2013 - 10 - 16
@Funtion:
Getting kvm instances port
"" "
import  sys,os,time,redis, trace back,json,threading,socket
LOG = log.get_logger(__name__)
class  MySocket(object):
def __init__(self, proto =  0 ):
if  proto ==  0 :
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setblocking(True)
else :
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,  1 )
# The socket binding host and port
def my_bind(self, host, port):
try :
self.sock.bind((host, port))
except socket.error, e:
LOG.error(e)
return  1
return  0
#listen TCP port , default
def my_listen(self, num =  1024 ):
try :
self.sock.listen(num)
except socket.error, e:
LOG.error(e)
return  1
return  0
#connect setting timeout
def my_connect(self, host, port, time_out = - 1 ):
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
self.sock.connect((host, port))
except socket.error, e:
LOG.error(e)
return  1
return  0
#accept teturn client address
def my_accept(self, time_out = - 1 ):
addr = []
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
client_sock, addr = self.sock.accept()
except socket.error, e:
LOG.error(e)
return  client_sock, addr
#recv setting timeout
def my_recv(self, buf_size, time_out = - 1 ):
buf =  ''
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
buf = self.sock.recv(buf_size)
except Exception, e:
LOG.error(e)
return  buf
#send setting timeout
def my_send(self, buf, time_out = - 1 ):
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
send_len = self.sock.send(buf)
return  send_len
except Exception, e:
LOG.error(e)
return  1
#close
def my_close(self, time_out = - 1 ):
try :
if  time_out == - 1 :
self.sock.setblocking( 1 )
else :
self.sock.settimeout(time_out)
self.sock.close()
except socket.error, e:
LOG.error(e)
return  1
return  0
class  sock_thread(threading.Thread):
def __init__(self, host, port,buf):
threading.Thread.__init__(self)
self.host = host
self.port = port
self.buf = buf
def run(self):
sock = MySocket()
sock.my_bind(self.host, self.port)
sock.my_listen( 20 )
LOG.info( 'The socket has been connected' )
while  True:
conn, addr = sock.my_accept()
while  True:
data = conn.recv(self.buf)
if  not data:
break
else :
try :
data = json.loads(data)
if  data[ 'Node' ][ 'UUID' ]:
port =  utils.get_vnc_port(data[ 'Node' ]. get ( 'UUID' ,None))
data[ 'Node' ][ 'port' ] = port
LOG.info(json.dumps(data))
conn.send(json.dumps(data))
else :
conn.send()
except:
break
conn.close()
sock.my_close()
class  socket_demo(object):
def __init__(self):
host  =  utils.get_net_ip()
self.host =  host
self.port =  10086
self.buf =  4096
def work(self):
self.sock = sock_thread(self.host, self.port,self.buf)
self.sock.start()
time.sleep( 0.5 )
def init():
st = socket_demo()
st.work()