コード例 #1
0
 def voyagerSearchResultsService(self,searchType=None,resultPointer="0",maxResultsPerPage="10",sortBy="TITLE",profileCode=None):
     """
     Voyagers SearchResultsService
     @param searchType: FIND,BROWSE,etc
     @param resultPointer: Current position in result set.
     @param maxResultsPerPage: Number of results returned
     @param sortBy: Field to sort on. 
     @param profileCode: Ignore, used only one RELBIBS
     @return: xml
     """
     self.xmldoc = None
     if searchType != None:
         query = ("searchType=" + searchType + 
                  "&resultPointer=" + resultPointer + 
                  "&maxResultsPerPage=" + maxResultsPerPage + 
                  "&sortBy=" + sortBy)
         try:
             print str(self._getVoyagerUrl()) + "/SearchResultsService?" + query
             socket = self.session.open(str(self._getVoyagerUrl()) + "/SearchResultsService?" + query,timeout=self.DEFAULT_TIMEOUT_SECONDS)
             self.xmldoc = minidom.parse(socket).documentElement
             socket.close()
         except Exception as e:
             logger.warning(e)
         #print self.xmldoc.toprettyxml(encoding='utf-8')
     return self.xmldoc
コード例 #2
0
ファイル: cluster.py プロジェクト: haridas/gevent-tools
 def handle(self, socket, address):
     """
     If not a leader, a node will simply return a single item list pointing
     to the leader. Otherwise, it will add the host of the connected client
     to the cluster roster, broadcast to all nodes the new roster, and wait
     for keepalives. If no keepalive within timeout or the client drops, it
     drops it from the roster and broadcasts to all remaining nodes. 
     """
     self.logger.debug('New connection from %s:%s' % address)
     if not self.manager.is_leader:
         socket.send(json.dumps({'leader': self.manager.client.leader_address[0], 
             'port': self.manager.client.leader_address[1]}))
         socket.close()
         self.logger.debug("Redirected to %s:%s" % self.manager.client.leader_address)
     else:
         socket.send(self._cluster_message())
         sockfile = socket.makefile()
         name = sockfile.readline()
         if not name:
             return
         if name == '\n':
             name = address[0]
         else:
             name = name.strip()
         self._update(add={'host': name, 'socket': socket})
         # TODO: Use TCP keepalives
         timeout = self._client_timeout(socket)
         for line in util.line_protocol(sockfile, strip=False):
             timeout.kill()
             timeout = self._client_timeout(socket)
             socket.send('\n')
             self.logger.debug("Keepalive from %s:%s" % address)
         self.logger.debug("Client disconnected from %s:%s" % address)
         self._update(remove=name)
コード例 #3
0
ファイル: backend.py プロジェクト: OpenCobolIDE/OpenCobolIDE
 def _rm_socket(self, socket):
     try:
         socket.close()
         self._sockets.remove(socket)
         socket.deleteLater()
     except ValueError:
         pass
コード例 #4
0
ファイル: server_socket.py プロジェクト: aeftimia/hexchat
    def socket_timeout(self, key, aliases):
        
        '''
        check whether the connection timed out
        This happens when a socket is still in self.master.pending_connections
        after a certain amount of time
        '''
        
        then=time.time() + TIMEOUT
        while time.time() < then:
            with self.master.pending_connections_lock:
                if not key in self.master.pending_connections:
                    return
            time.sleep(CHECK_RATE)

        with self.master.pending_connections_lock:
            if not key in self.master.pending_connections:
                return
            (from_aliases, socket) = self.master.pending_connections.pop(key)

        socket.close()

        for bot_index in from_aliases:
            with self.master.bots[bot_index].num_clients_lock:
                self.master.bots[bot_index].num_clients -= 1

        with self.master.peer_resources_lock:
            if key[1] in self.master.peer_resources:
                self.send_disconnect_error(key, from_aliases, self.master.peer_resources[key[1]])
            else:
                self.send_disconnect_error(key, from_aliases, key[1], message=True)
コード例 #5
0
ファイル: server.py プロジェクト: imrehg/pulse-programmer
  def server(self,parent,answer=False,pre_return=False):
    while True:
        print "server started"
        sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind(('',parent.port))
        sock.listen(5)
        try:
            while True:
                newSocket, address = sock.accept()
                debug_print("ip address: "+str(address),1)
                while True:
                  try:
                    print "ready to receive:"
                    receivedData=newSocket.recv(4*8192)#maybe we should increase the max receive data
                  except:
                    print "socket error"
                  if not receivedData:
                    print "no data"
                    break
                  if receivedData=="alive?":
                    print "alive"
                    newSocket.sendall("alive!"+";\r\n") #added TK
                    break
                  if pre_return:
                    try:
                      newSocket.sendall("RECEIVED!"+";\r\n") #added TK
                    except:
                      debug_print("error while sending return string",1)
                  debug_print("received data: " + str(receivedData),1)
                  start_time=time.time()
                  parent.server_create(receivedData)
                  stop_time=time.time()
                  used_time=round((stop_time-start_time)*1000)
                  parent.time_str="OK, execution_time, " +str(used_time)+";\n"

                  if (parent.error_string==""):
                    if answer:
                      print "trying to send"
                      string=parent.get_return_string()
                      try:
                        newSocket.sendall(string+"\r\n")
                      except:
                        debug_print("error while returning value",1)
                        debug_print("returned value"+str(parent.get_return_string())+"\r\n",1)
                  else:
                    print"trying to send error"
                    if answer:
                      newSocket.sendall(parent.error_string+"\r\n")
                    parent.error_string=""
                    print "sended error"
                print "finish connected"
                newSocket.close()

        finally:

            print "disconnected"
            try:
                socket.close()
            except AttributeError:
                debug_print("server crashed - restarting",1)
コード例 #6
0
ファイル: peer_server.py プロジェクト: vatsaltrivedi/IPP
def broadcast (server_socket, sock, message):

    # sending message to clients
    
    for socket in SOCKET_LIST:
        # send the message only to clients
        if socket != server_socket and socket != sock :
            try :
                socket.send(message)
            except :
                # broken socket connection
                socket.close()
                # broken socket, remove it
                if socket in SOCKET_LIST:
                    SOCKET_LIST.remove(socket)

    #sending to other peers

    for socket in PEER_SERVERS:
        # send the message only to peers
        if socket != server_socket and socket != sock :
            try :
                socket.send(message)
            except :
                # broken socket connection
                socket.close()
                # broken socket, remove it
                if socket in SOCKET_LIST:
                    SOCKET_LIST.remove(socket)
コード例 #7
0
    def stop(self):
        """
        Stops the backend process.
        """
        if self._process is None:
            return
        if self._shared:
            BackendManager.SHARE_COUNT -= 1
            if BackendManager.SHARE_COUNT:
                return
        _logger().debug('stopping backend process')
        # close all sockets
        for socket in self._sockets:
            socket._callback = None
            socket.close()

        self._sockets[:] = []
        # prevent crash logs from being written if we are busy killing
        # the process
        self._process._prevent_logs = True
        while self._process.state() != self._process.NotRunning:
            self._process.waitForFinished(1)
            if sys.platform == 'win32':
                # Console applications on Windows that do not run an event
                # loop, or whose event loop does not handle the WM_CLOSE
                # message, can only be terminated by calling kill().
                self._process.kill()
            else:
                self._process.terminate()
        self._process._prevent_logs = False
        _logger().info('backend process terminated')
コード例 #8
0
ファイル: server_d.py プロジェクト: meetsriharsha/NA1_5110
def broadcast_MessageTo_Clients (sock, message):
    
    len_of_msg = len(message)
    msg = message[0:len_of_msg]
    #sent_data_len = 0
    
    for socket in ALL_CONNECTION_LIST:
      sent_data_len = 0
      while (sent_data_len != len_of_msg):
        if socket != server_socket and socket != sock:
            try :
                temp = socket.send(msg)
                sent_data_len = sent_data_len + temp
                if(sent_data_len != len_of_msg):
                   msg = message[sent_data_len:len_of_msg]
                else:
                  break
                
            except Exception, e:
                # broken socket connection may be, chat client pressed ctrl+c for example
                print"{{%s}}" % e
                socket.close()
                ALL_CONNECTION_LIST.remove(socket)
                break
     
        else:
           break 
コード例 #9
0
    def test_preexisting_token_sans_splunk(self):
        token = self.context.token
        if token.startswith('Splunk '):
            token = token.split(' ', 1)[1]
            self.assertFalse(token.startswith('Splunk '))
        else:
            self.fail('Token did not start with "Splunk ".')
        opts = self.opts.kwargs.copy()
        opts["token"] = token
        opts["username"] = "******"
        opts["password"] = "******"

        newContext = binding.Context(**opts)
        response = newContext.get("/services")
        self.assertEqual(response.status, 200)

        socket = newContext.connect()
        socket.write("POST %s HTTP/1.1\r\n" %\
                    self.context._abspath("some/path/to/post/to"))
        socket.write("Host: %s:%s\r\n" %\
                     (self.context.host, self.context.port))
        socket.write("Accept-Encoding: identity\r\n")
        socket.write("Authorization: %s\r\n" %\
                     self.context.token)
        socket.write("X-Splunk-Input-Mode: Streaming\r\n")
        socket.write("\r\n")
        socket.close()
コード例 #10
0
def main():
    print "Welcome to the IGV walker! Use the WASD keys to take Gir for a walk!\n"

    # Make sure we can establish a connection with Gir
    socket = 0
    try:
        #socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #socket.connect((SLAVE, PORT))
    except:
        print "A connection could not be made, giving up."
        sys.exit(1)

    # Setup keybindings
    app = 0
    root = 0
    try:
        app = Walker()
        root = tk.Tk()

        root.bind_all('<Key>', app.key_pressed)
        root.bind_all('<KeyRelease>', app.key_released)
        root.after(20, app.task, s)
        root.withdraw()
    except:
        print "Could not bind keypress handlers, giving up."

    try:
        root.mainloop()
        root.destroy()
        socket.close()
    except:
        root.destroy()
        socket.close()
        raise
コード例 #11
0
ファイル: __init__.py プロジェクト: axilleas/fedmsg
def get_replay(name, query, config, context=None):
    endpoint = config.get('replay_endpoints', {}).get(name, None)
    if not endpoint:
        raise IOError("No appropriate replay endpoint "
                      "found for {0}".format(name))

    if not context:
        context = zmq.Context(config['io_threads'])

    # A replay endpoint isn't PUB/SUB but REQ/REP, as it allows
    # for bidirectional communication
    socket = context.socket(zmq.REQ)
    try:
        socket.connect(endpoint)
    except zmq.ZMQError as e:
        raise IOError("Error when connecting to the "
                      "replay endpoint: '{0}'".format(str(e)))

    # REQ/REP dance
    socket.send(fedmsg.encoding.dumps(query))
    msgs = socket.recv_multipart()
    socket.close()

    for m in msgs:
        try:
            yield fedmsg.encoding.loads(m)
        except ValueError:
            # We assume that if it isn't JSON then it's an error message
            raise ValueError(m)
コード例 #12
0
ファイル: webserver.py プロジェクト: vekka/inf-2301
	def handleGet(self, requestLineAsList, socket):
	
		responseFile = self.hostedDirectory + requestLineAsList[1]
		if os.path.isdir(responseFile):
			responseFile = responseFile + "/"
			
		if responseFile[-1] == '/':
			responseFile = responseFile + "index.html"
			
		content = ""
		response = "HTTP/1.1 "
		try:
			print "Trying to open file: " + responseFile
			file = open(responseFile, 'rb')
			content = file.read()
			
			response = response + "200 OK\r\n"
			response = response + "Content-Length: " + str(len(content)) + "\r\n\r\n"
			response = response + content
			file.close()
			#print "Response: ", response
		except:
			print "Exception"
			response = response + "404 Not Found\r\n\r\n<html><body><h1>404 Not Found</h1></body></html>"
	
		
		if socket.sendall(response) != None:
			print "Failed to send"
		
		print "Response successfully sent"
		socket.close()
コード例 #13
0
ファイル: main.py プロジェクト: fabio-d/honeypot
def handle_tcp(socket, dstport):
	handler = tcp_handlers.get(dstport, handle_tcp_default)
	try:
		handler(socket, dstport)
	except Exception as err:
		print(traceback.format_exc())
	socket.close()
コード例 #14
0
ファイル: pythonbits.py プロジェクト: dtreichler/Pythonbits
	def upload(self):
		self.getDuration()
                # Take screenshots at even increments between 20% and 80% of the duration
                stops = range(20,81,60/(self.shots-1))
		try:
                        count=0
                        imgs = []
                        for stop in stops:
                                imgs.append(tempdir()+"screen%d.png" % count)
    			        subprocess.Popen([r"ffmpeg","-ss",str((self.duration * stop)/100), "-vframes", "1", "-i", self.path , "-y", "-sameq", "-f", "image2", imgs[-1] ], stdout=subprocess.PIPE, stderr=subprocess.STDOUT).wait()
                                count+=1
		except OSError:
			sys.stderr.write("Error: Ffmpeg not installed, refer to http://www.ffmpeg.org/download.html for installation")
			exit(1)
		opener = urllib2.build_opener(MultipartPostHandler.MultipartPostHandler)
		try:
                        for img in imgs:
		                params = ({'key' : self.key.decode('utf-8').encode('utf-8'), 'image' : open(img, "rb")})
			        socket = opener.open("http://api.imgur.com/2/upload.json", params)
			        read = json.loads(socket.read())
			        self.imageurl.append(read['upload']['links']['original'])
			        socket.close()
			        os.remove(img)
			return True
		except urllib2.URLError as s:
			if self.tries < 3:
				self.tries += 1
				sys.stderr.write('Connection timed out, retrying to upload screenshots to imgur. This is try: ')
				sys.stderr.write(str(self.tries))
				sys.stderr.write('\n')
				self.upload()
			return True
コード例 #15
0
ファイル: __init__.py プロジェクト: ecastrow/pl2mind
def server(pid, ep):
    """
    Worker for listening socket for communication with web server.

    Parameters
    ----------
    pid: int
        Process id. Used to send SIGINT.
    ep: mp.Pipe endpoint.
        Used to communicate with model processor.
    """
    context = zmq.Context()
    socket = context.socket(zmq.REP)
    port = socket.bind_to_random_port("tcp://0.0.0.0")
    ep.send(port)

    def sig_handler(signum, frame):
        socket.close()
        return

    signal.signal(signal.SIGTERM, sig_handler)

    while True:
        message = socket.recv()
        if message == "KILL":
            socket.send("OK")
            socket.close()
            ep.send(None)
            p = psutil.Process(pid)
            p.send_signal(signal.SIGINT)
            return
コード例 #16
0
 def start(self):
     self.server_socket.bind(('', self.port))
     self.server_socket.listen(5)
     print "Listening for connections..."
     self.keep_running = True
     sockets = [self.server_socket]
     nicknames = {}
     while self.keep_running:
         readable, writable, error = select.select(sockets, [], [])
         if len(readable) > 0:
             for sock in readable:
                 if sock is self.server_socket:
                     print "New client accepted."
                     (client_socket, address) = sock.accept()
                     sockets.append(client_socket)
                 else:
                     msg = sock.readnext()
                     if not sock in nicknames.keys():
                         if msg in nicknames.values():
                             sock.write("ERROR: Nickname already in use.")
                         else:
                             nicknames[sock] = msg
                             sock.write("SERVER: Welcome to chat!")
                     elif msg == "":
                         sock.close()
                         sockets.remove(sock)
                         print "Client disconnected."
                     else:
                         for client_socket in sockets:
                             if not client_socket is self.server_socket:
                                 client_socket.write("[%s]> %s" % (nicknames[sock], msg))
                         print msg
     for socket in sockets:
         socket.close()    
コード例 #17
0
ファイル: ient3.py プロジェクト: dh-Chen/chat
def send_data(socket):
    while True:
        data = input()
        socket.send(data.encode('utf-8'))
        if(data == 'exit'):
            socket.close()
            break
コード例 #18
0
ファイル: winCapture.py プロジェクト: sungwonnam/SAGENext
def main():
    global wCapture, SHARED_DO_RUN, SHARED_CAPTURE_EDGE, SCREENSHOT_DIR, SCREENSHOT_NAME, SHARED_DISABLE_CORNERS

    # get display height and width
    width = sys.argv[1]
    height = sys.argv[2]
    shareEdge = int(sys.argv[3])

    # shared variable for closing the winCapture
    SHARED_DO_RUN = multiprocessing.Value("i", 1)
    SHARED_CAPTURE_EDGE = multiprocessing.Value("i", shareEdge)
    SHARED_DISABLE_CORNERS = multiprocessing.Value("i", 1)

	# connect to QTcpServer
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
    try:
        sock.connect( ("127.0.0.1", 44556) )
        print "Connected !"
    except socket.error:
        print "Failed to connect"
        tb.print_exc()

    # start the winCapture in another process... send it the shared DO_RUN 
    # variable and the pipe so it can talk to the GUI
    wCapture = WinCapture(sock, width, height, SHARED_DO_RUN, SHARED_CAPTURE_EDGE, SHARED_DISABLE_CORNERS)
    #wCapture.start()
    wCapture.run()

    socket.close()
コード例 #19
0
ファイル: ServerChat.py プロジェクト: arellanon/Taller-II
    def esperando_conexiones(self):
    
        self.server_socket.listen(self.listen)
        # Añadimos socket server a la lista
        self.CONNECTION_LIST.append(self.server_socket)
        while True:
        # Obtener la lista sockets que están listos para ser leídos a través de selección
            read_sockets,write_sockets,error_sockets = select.select(self.CONNECTION_LIST,[],[])

            for socket in read_sockets:
                # Nueva conexion
                if socket == self.server_socket:
                    # Hay una nueva conexión recibida
                    client_socket, addr = self.server_socket.accept()
                    self.CONNECTION_LIST.append(client_socket)
                    print "Cliente (%s, %s) conectado" % addr
                    self.enviar_msg(client_socket, "Ingreso: [%s:%s].\n" % addr)
                # Mensaje desde algun cliente chat
                else:
                    # Datos del cliente
                    try:
                        data = socket.recv(self.recv_buffer)
                        if data:
                            self.enviar_msg(socket, "\r" + '<' + str(socket.getpeername()) + '> ' + data)
                    except:
                        self.enviar_msg(socket, "Cliente (%s, %s) desconectado." % addr)
                        print "Cliente (%s, %s) desconectado." % addr
                        socket.close()
                        self.CONNECTION_LIST.remove(socket)
                        continue
        self.server_socket.close()
コード例 #20
0
ファイル: echo_server.py プロジェクト: rdwaite/cs176b
def packetized_receive(socket):
    try:
        message_len = socket.recv(16)
        message_remaining = int(message_len)
        message = ""
        print "IN PACKETIZED RECEIVE RECEIVING: "+str(message_remaining)
        while(message_remaining > 0):
            if(message_remaining < 1024):
                data = socket.recv(message_remaining)
                if len(data) != message_remaining:
                    message_remaining -= len(data)
                    data = data + socket.recv(message_remaining)
                message = message + data
                message_remaining = 0
            else:
                data = socket.recv(1024)
                if len(data) != 1024:
                    more = 1024 - len(data)
                    data = data + socket.recv(more)
                message = message + data
                message_remaining -= 1024
        print "IN PACKETIZED RECEIVE RECEIVED: "+str(len(message))
        return message
    except Exception as e:
        print "Peer disconnected, try again."
        logging.info("Peer disconnected in packetized_receive:"+str(sys.exc_info()[0]))
        socket.close()
コード例 #21
0
ファイル: server.py プロジェクト: Sugarsplash/cs494
def broadcast_data (sock, message, shout = None):
    if shout:
        for socket in CONNECTION_LIST:
            if socket != server_socket and socket != sock :
                for every in user[sock]['rooms']:
                    if every in user[socket]['rooms']:
                        try :
                            socket.send(message)
                        except :
                            # broken socket connection may be, chat client pressed ctrl+c for example
                            print "OH, he gettin removed and shit."
                            socket.close()
                            CONNECTION_LIST.remove(socket)
    else:
        #Do not send the message to master socket and the client who has send us the message
        for socket in CONNECTION_LIST:
            if socket != server_socket and socket != sock :
                if user[socket]['current'] == user[sock]['current']:
                    try :
                        socket.send(message)
                    except :
                        # broken socket connection may be, chat client pressed ctrl+c for example
                        print "OH, he gettin removed and shit."
                        socket.close()
                        CONNECTION_LIST.remove(socket)
コード例 #22
0
ファイル: file_uploader.py プロジェクト: buglloc/pocs
 def _socketRequest(self, scheme, host, port, payload):
     socket = self._getSocketForScheme(scheme)
     socket.connect((host, port))
     socket.sendall(payload)
     data = socket.recv(1024)
     socket.close()
     return data
コード例 #23
0
def handle(socket, address):

    unparsed_data = socket.recv(1024)
    parsed_http_response = HTTPRequestParser(unparsed_data)

    # Message formatting and message sending are separated for ease of testing.

    if parsed_http_response.error_code is not None:
        server_response = return_error(parsed_http_response)
        socket.send(server_response)

    elif parsed_http_response.request_version != "HTTP/1.1":
        server_response = return_unsupported_version(parsed_http_response)
        socket.send(server_response)

    elif parsed_http_response.command != "GET":
        server_response = return_method_not_allowed(parsed_http_response)
        socket.send(server_response)

    elif parsed_http_response.error_code is None:
        # note to self: feed the returns from
        # return_requested_file_or_directory()
        # into a response crafter which does header creation.
        server_response = \
            return_ok_http_file_or_directory_response(parsed_http_response)
        socket.send(server_response)

    socket.close()
コード例 #24
0
 def send_data_to(self, sock, message):
     try:
         sock.send(message)
     except:
         # broken socket connection may be, chat client pressed ctrl+c for example
         socket.close()
         self.CONNECTION_LIST.remove(sock)
コード例 #25
0
ファイル: server.py プロジェクト: blubber/kastje
def cleanup (arg1 = None, arg2 = None):
    global clients
    log("Cleaning up")

    running = False

    for socket in clients:
        try:
            socket.shutdown(socket.SHUT_RDWR)
        except Exception as e:
            pass
        socket.close()

    if unix_socket:
        unix_socket.shutdown(socket.SHUT_RDWR)
        unix_socket.close()
    if tcp_socket:
        tcp_socket.shutdown(socket.SHUT_RDWR)
        tcp_socket.close()

    if serial_con:
        serial_con.close()
    
    try:
        os.remove('/tmp/lights')
    except OSError, e: pass

    try:
        os.remove(config['pidfile'])
    except OSError, e: pass
コード例 #26
0
ファイル: __init__.py プロジェクト: mbreese/proxylet
 def serve(self):
     self._running = True
     socket = evtapi.tcp_listener((self.host,self.port))
     while self._running:
       client, _ = socket.accept()
       Dispatcher(client,self.mapper).dispatch()
     socket.close()
コード例 #27
0
ファイル: server.py プロジェクト: suhodolik/client-serv
    def file_send(self, socket):
        print('Thread for client ' + str(socket) + ' started! Waiting for input...')

        # headers = conn.recv(1024)
        # print('headers: %s' % headers)

        # data = self.msg_get(socket)
        # print(data)
        #
        # # socket.send('tarantino.jpg'.encode('utf-8'))
        # self.msg_send(socket, 'tarantino.jpg')
        # print('send filename')
        # # socket.close()

        # socket = self.connect()

        with open(self.default_server_file, 'rb') as file:
            print('File open')
            l = file.read(1024)
            while l:
                socket.send(l)
                # print('sending data...')
                l = file.read(1024)
            print('sending data: END...')
            socket.close()
コード例 #28
0
def listen_on_socket(socket, *args):
    if socket is None:
        return
    command = ""
    file = socket.makefile('rwb')
    while True:
        try:
            data = file.read(1)
            if data == b'':
                sleep(0.001)
                continue
            else:
                data = data.decode('ascii')
            if data == AtHomeProtocol['end_of_communication']:
                print('Communication ended', file=sys.stderr)
                return
            if data != AtHomeProtocol['end_of_command']:
                command += data
            else:
                command = ""
                continue
            if command.endswith(AtHomeProtocol['end_of_line']):
                command = command[0:-2]
                if command in AtHomeCommands:
                    AtHomeCommands[command](file)
                else:
                    command = ""
                    raise NameError('[Unknown Command] %s' % command)
                command = ""
        except EOFError:
            file.close()
            socket.close()
            return
        except Exception as e:
            print('[Exception] %s' % e, file=sys.stderr)
コード例 #29
0
ファイル: teamspeak.py プロジェクト: webvictim/imabot
def _closesocket(socket):
    try:
        socket.close()
        return True
    except:
        print "Couldn't close the socket for some reason"
        return False
コード例 #30
0
 def voyagerSearchService(self,searchCode="GKEY",searchArg=None,maxResultsPerPage="10",searchArgType="AND",displayRelevanceFlag="N"):
     """
     Voyagers SearchService
     @param searchCode: Code Constraint to search on.
     @param searchArg: Item('s) to be searched. 
     @param maxResultsPerPage: Number of results returned
     @param searchArgType: How to connect your searchArgs aka AND or OR  
     @param displayRelevanceFlag:  Is Browse?  Y|N
     @return: xml
     """
     self.xmldoc = None
     if searchArg != None:
         query = ("searchCode=" + searchCode + 
                  "&searchArg=" + searchArg + 
                  "&maxResultsPerPage=" + maxResultsPerPage + 
                  "&searchArgType=" + searchArgType + 
                  "&displayRelevanceFlag=" + displayRelevanceFlag)
         try:
             print str(self._getVoyagerUrl()) + "/SearchService?" + query
             socket = self.session.open(str(self._getVoyagerUrl()) + "/SearchService?" + query,timeout=self.DEFAULT_TIMEOUT_SECONDS)
             self.xmldoc = minidom.parse(socket).documentElement
             socket.close()
         except Exception as e:
             logger.warning(e)
         #print self.xmldoc.toprettyxml(encoding='utf-8')
     return self.xmldoc
コード例 #31
0
ファイル: AVR_Miner.py プロジェクト: glorija/duino-coin
def Connect():
    global masterServer_address, masterServer_port
    while True:
        try:
            try:
                socket.close()
            except:
                pass
            debugOutput("Connecting to " + str(masterServer_address) + str(":") + str(masterServer_port))
            socId = socket.socket()
            # Establish socket connection to the server
            socId.connect((str(masterServer_address), int(masterServer_port)))
            # Get server version
            serverVersion = socId.recv(3).decode()
            debugOutput("Server version: " + serverVersion)
            if (float(serverVersion) <= float(minerVersion)and len(serverVersion) == 3):
                # If miner is up-to-date, display a message and continue
                print(
                    now().strftime(Style.RESET_ALL + Style.DIM + "%H:%M:%S ")
                    + Style.BRIGHT
                    + Back.BLUE
                    + Fore.WHITE
                    + " net0 "
                    + Back.RESET
                    + Fore.YELLOW
                    + getString("connected")
                    + Style.RESET_ALL
                    + Fore.WHITE
                    + getString("connected_server")
                    + str(serverVersion)
                    + ")")
                break
            else:
                print(
                    now().strftime(Style.RESET_ALL + Style.DIM + "%H:%M:%S ")
                    + Style.BRIGHT
                    + Back.GREEN
                    + Fore.WHITE
                    + " sys0 "
                    + Back.RESET
                    + Fore.RED
                    + " Miner is outdated (v"
                    + minerVersion
                    + "),"
                    + Style.RESET_ALL
                    + Fore.RED
                    + getString("server_is_on_version")
                    + serverVersion
                    + getString("update_warning"))
                time.sleep(10)
                break
        except:
            print(
                now().strftime(Style.DIM + "%H:%M:%S ")
                + Style.RESET_ALL
                + Style.BRIGHT
                + Back.BLUE
                + Fore.WHITE
                + " net0 "
                + Style.RESET_ALL
                + Style.BRIGHT
                + Fore.RED
                + getString("connecting_error")
                + Style.RESET_ALL)
            if debug == "y":
                raise
            time.sleep(5)
    return socId
コード例 #32
0
def methodV3(AUTH_REQUEST, VER_THREE, token, socket):
    tokenLen = int(24)
    signatureLen = int(40)
    encrypt_key_number = int(5)
    encodedToken = ""
    encodedToken += str(
        (base64.b64encode(bytes(token))).decode("utf-8"))  #encoding in base64
    encodedTokenLen = len(encodedToken) + 1
    print('encodedTokenLen :', encodedTokenLen)
    bodyLen = 0
    pos = 0
    written_len = 0
    respond = 1
    appId = "com.sanity.test"
    skeys = [
        "SM62KphYVQN1Y1OI", "O2bxWuezJ5JhrdeZ", "Yab4V6u8pzM3h9u8",
        "mvLDu0c0tKw8fEd5", "K6Ja3ZsVF2WvBWsA", "7NPs6Q4xXddwUVVV",
        "HmbJ6zGm5qddMiie", "sMyypdfUnXaPUS3g", "IrrsXwfr4CCD9MuQ",
        "rzQ3HlVbtNVIQSrv"
    ]
    buffr = "{\"isFg\" : \"true\",\"userId\" : \"testUser:79eec5bdfe7c6f03\",\"dUid\" : \"79eec5bdfe7c6f03\",\"dMk\" : \"HMD Global\",\"dMl\" : \"TA-1021\",\"mccMnc\" : \"405-53\"} }"
    print("Buffer: ", buffr)
    written_len = len(buffr)
    print("signatureLen: ", sys.getsizeof(signatureLen))
    bodyLen = 2 + encodedTokenLen + 2 + 8 + 40 + 1 + written_len + 2
    #print("bodyLen : ", bodyLen)
    buf = []
    req_buf = []
    pos_req = 0
    myArray = array('B', [(AUTH_REQUEST << 4) + VER_THREE])
    for x in myArray:
        req_buf.append(x)
    pos_req += 1
    myArray = array('B', [encrypt_key_number])
    for x in myArray:
        req_buf.append(x)
    pos_req += 1
    '''
  low = (bodyLen & 0x00ff);
  high = ((bodyLen & 0xff00) >> 8)
  myArray = array('B', [high,low])
  for x in myArray:
      buf.append(x)
  pos_req+=2
  '''
    low = (respond & 0x00ff)
    print("First low: ", low)
    buf.append(low)
    pos += 1
    low = (encodedTokenLen & 0x00ff)
    high = ((encodedTokenLen & 0xff00) >> 8)
    buf.append(high)
    buf.append(low)
    pos += 2
    print("Buf before adding token ", buf)
    #encodedToken+="\0"
    print("This is encodedToken")
    print(encodedToken)
    length = len(encodedToken)
    print(length)
    for item in encodedToken:
        buf.append(ord(item))
    pos += length
    print("Buf after adding token ", buf)
    buf.append(0)
    #Adding current timestamp
    #buf.append(0)
    #pos+=1
    tym = int(time.time() * 1000)
    print("Time: ", tym)
    #tym = 1528200938
    p = int_to_bytes1(tym, 8)
    #p = int_to_bytes1(1528200938,8)
    for item in p:
        buf.append(item)
    #buf.append(0)
    '''
  buf.append(p[7])
  buf.append(p[6])
  buf.append(p[5])
  buf.append(p[4])
  buf.append(p[3])
  buf.append(p[2])
  buf.append(p[1])
  buf.append(p[0])
  '''
    pos += 8
    print("Buf after adding timestamp: ", buf)
    #Adding Signature len
    low = (signatureLen & 0x00ff)
    high = ((signatureLen & 0xff00) >> 8)
    buf.append(high)
    buf.append(low)
    pos += 2

    ts_str = str(tym)

    buf2 = token + ts_str + appId + skeys[0]

    print("signatureLen: ", signatureLen)
    print("This is buf2")
    print(buf2)

    #encrypting in SHA1
    #encrypting in SHA1
    digest = []
    digest = sha1.sha1(buf2)

    print("This is digest")
    print(digest)

    result = ""
    x = 0
    result += "".join("{:08x}".format(c) for c in digest)
    #result+="".join("{:08x} ".format(ord(c)) for c in digest)
    print("This is result:")
    print(result)
    print("signatureLen :", len(result))

    # Putting digest key in buffer
    for item in result:
        buf.append(ord(item))
    pos += 40
    print("This is buf after adding result")
    print(buf)

    #Adding payload length
    low = (len(buffr) & 0x00ff)
    high = ((len(buffr) & 0xff00) >> 8)
    buf.append(high)
    buf.append(low)
    pos += 2

    for item in buffr:
        buf.append(ord(item))
    #buf.append(0)
    pos += len(buffr)
    print("This is buf after adding buffer: ")
    print(buf)
    print("This is buf")
    packet2 = str(bytearray(buf))
    print("".join("{:02x} ".format(ord(c)) for c in packet2))
    print(buf)
    print(len(buf))
    pack = ""
    for item in buf:
        pack += str(item)
    print(pack)
    #packet = str(bytearray(buf))
    #print("This is buf packet")
    #print(packet)
    #encrypted=[]
    encrypted1 = ""
    '''
  for i in buf:
   encrypted += i ^ skeys[encrypt_key_number]
   '''
    skey = []
    for item in skeys[encrypt_key_number]:
        skey.append(ord(item))
    encrypted = str_xor(buf, skey)
    #encrypted[pos] = 0
    '''
  for i in encrypted:
   encrypted1 += str(i) ^ skeys[encrypt_key_number]
  '''
    #encrypted1+=str_xor(encrypted, skey)

    print("This is encrypted buf:")
    print(encrypted)
    #print("This is decrypted buf:")
    #print(encrypted1)
    #print(len(encrypted))
    low = (pos & 0x00ff)
    high = ((pos & 0xff00) >> 8)
    print("High and Low")
    print(high)
    print(low)
    myArray = array('B', [high, low])
    for x in myArray:
        req_buf.append(x)
    pos_req += 2
    print("This is req_buf")
    packet = str(bytearray(req_buf))
    print("".join("{:02x} ".format(ord(c)) for c in packet))
    req_buf = req_buf + encrypted
    #print(x)
    pos_req += pos
    print("This is req_buf with encrypted buf")
    print(req_buf)

    packet = str(bytearray(req_buf))
    print("This is req_buf packet: ")
    print(packet)
    print("This is req_buf hex packet: ")
    print(" ".join("{:02x}".format(ord(c)) for c in list(packet)))
    appendData = "\nGET / HTTP/1.1\r\nHost: www.datami.com\r\nUser-Agent: curl/7.51.0\r\nAccept: */*\r\n\r\n"
    packet += appendData
    print(packet)
    x = 0
    '''
  socket.send(packet)
  print(int(time.time()))
  tym = str(int(time.time()))
  timNum = []
  for i in list(tym):
   timNum.append(int(i))
  p = array('B', timNum)
  print(p)
  '''
    tot_bytes = 0
    socket.send(packet)
    while True:
        #print(x)
        if (len(socket.recv(1024)) == 0):
            socket.close()
            break
        tot_bytes += len(socket.recv(1024))
        print(socket.recv(1024))
        x += 1
    print(tot_bytes)
コード例 #33
0
import socket, select
ef broadcast_chatroom (sock, message):
    #do not send the message to master socket and the client who has send us the message
    for socket in chatroom:
        if socket != server_socket and socket != sock :
             try :
                 socket.send(message)
             except:
                 # broken socket connection may be, chat client pressed ctrl+c for example
                 socket.close()
                 chatroom.remove(socket)

if __name__ == "__main__":

     #user_info = []
     user_info = [[]*4 for x in range(9)]

     user_info[0].append('qw')
     user_info[0].append('as')
     user_info[0].append('0')
     user_info[1].append('er')
     user_info[1].append('df')
     user_info[1].append('0')
     user_info[2].append('ty')
     user_info[2].append('gh')
     user_info[2].append('0')
     user_info[3].append('ui')
     user_info[3].append('jk')
     user_info[3].append('0')
     print (user_info)
コード例 #34
0
def quit_smtp(socket):
    send_data_to_server("QUIT\r\n", socket)
    receive_data_from_server(socket)
    socket.close()
    quit()
コード例 #35
0
 def close_Proposer(self,socket):
     socket.close()
コード例 #36
0
 def tearDown(self):
     for socket in self.socket_list:
         socket.close()
コード例 #37
0
def methodV0(AUTH_REQUEST, VER_ZERO, token, sig, socket):
    sig_len = 4
    tokenLen = 24
    bodyLen = 2 + tokenLen + sig_len + 2
    buf = []
    pos = 0
    myArray = array('B', [(AUTH_REQUEST << 4) + VER_ZERO])
    for x in myArray:
        buf.append(x)
    #print(' '.join('{:02x}'.format(x) for x in myArray))
    pos += 1

    low = (bodyLen & 0x00ff)
    high = ((bodyLen & 0xff00) >> 8)
    myArray = array('B', [high, low])
    #print(' '.join('{:02x}'.format(x) for x in myArray))
    for x in myArray:
        buf.append(x)
    pos += 2

    low = (tokenLen & 0x00ff)
    high = ((tokenLen & 0xff00) >> 8)
    myArray = array('B', [high, low])
    #print(' '.join('{:02x}'.format(x) for x in myArray))
    for x in myArray:
        buf.append(x)
    pos += 2
    #print(' '.join('{:02x}'.format(x) for x in myArray))
    i = 0
    for item in token:
        buf.append(item)
    pos += tokenLen

    low = (sig_len & 0x00ff)
    high = ((sig_len & 0xff00) >> 8)
    myArray = array('B', [high, low])
    #print(myArray)
    #print(' '.join('{:02x}'.format(x) for x in myArray))
    for x in myArray:
        buf.append(x)
    pos += 2
    for item in sig:
        buf.append(item)
    pos += sig_len
    print(token)
    print(buf)
    packet = str(bytearray(buf))
    appendData = "\nGET / HTTP/1.1\r\nHost: www.datami.com\r\nUser-Agent: curl/7.51.0\r\nAccept: */*\r\n\r\n"
    packet += appendData
    print(packet)
    x = 0
    '''
  socket.send(packet)
  print(int(time.time()))
  tym = str(int(time.time()))
  timNum = []
  for i in list(tym):
   timNum.append(int(i))
  p = array('B', timNum)
  print(p)
  '''
    tot_bytes = 0
    socket.send(packet)
    while True:
        #print(x)
        if (len(socket.recv(1024)) == 0):
            socket.close()
            break
        tot_bytes += len(socket.recv(1024))
        print(socket.recv(1024))
        x += 1
    print(tot_bytes)
コード例 #38
0
def methodV1(AUTH_REQUEST, VER_ONE, token, socket):
    tokenLen = int(24)
    signatureLen = int(40)
    encodedToken = ""
    encodedToken += str(
        (base64.b64encode(bytes(token))).decode("utf-8"))  #encoding in base64
    encodedTokenLen = len(encodedToken) + 1
    print('encodedTokenLen :', encodedTokenLen)
    bodyLen = 0
    pos = 0
    written_len = 0
    respond = 1
    appId = "com.sanity.test"
    print("signatureLen: ", sys.getsizeof(signatureLen))
    bodyLen = 2 + encodedTokenLen + 2 + 8 + 40 + 1
    buf = []
    req_buf = []
    pos_req = 0
    myArray = array('B', [(AUTH_REQUEST << 4) + VER_ONE])
    for x in myArray:
        req_buf.append(x)
    pos_req += 1
    low = (respond & 0x00ff)
    print("First low: ", low)
    buf.append(low)
    pos += 1
    low = (encodedTokenLen & 0x00ff)
    high = ((encodedTokenLen & 0xff00) >> 8)
    buf.append(high)
    buf.append(low)
    pos += 2
    print("Buf before adding token ", buf)

    #encodedToken+="\0"
    print("This is encodedToken")
    print(encodedToken)
    length = len(encodedToken)
    print(length)
    for item in encodedToken:
        buf.append(ord(item))
    pos += length
    print("Buf after adding token ", buf)
    buf.append(0)

    #Adding current timestamp
    tym = int(time.time() * 1000)
    print("Time: ", tym)
    p = int_to_bytes1(tym, 8)
    for item in p:
        buf.append(item)
    pos += 8
    print("Buf after adding timestamp: ", buf)

    #Adding Signature len
    low = (signatureLen & 0x00ff)
    high = ((signatureLen & 0xff00) >> 8)
    buf.append(high)
    buf.append(low)
    pos += 2

    ts_str = str(tym)

    buf2 = token + ts_str + appId

    print("signatureLen: ", signatureLen)
    print("This is buf2")
    print(buf2)

    #encrypting in SHA1
    digest = []
    digest = sha1.sha1(buf2)

    print("This is digest")
    print(digest)

    result = ""
    x = 0
    result += "".join("{:08x}".format(c) for c in digest)
    #result+="".join("{:08x} ".format(ord(c)) for c in digest)
    print("This is result:")
    print(result)
    print("signatureLen :", len(result))

    # Putting digest key in buffer
    for item in result:
        buf.append(ord(item))
    pos += 40
    print("This is buf after adding result")
    print(buf)

    print("This is buf")
    packet2 = str(bytearray(buf))
    print("".join("{:02x} ".format(ord(c)) for c in packet2))
    print(buf)
    print(len(buf))
    pack = ""
    for item in buf:
        pack += str(item)
    print(pack)

    low = (pos & 0x00ff)
    high = ((pos & 0xff00) >> 8)
    print("High and Low")
    print(high)
    print(low)
    myArray = array('B', [high, low])
    for x in myArray:
        req_buf.append(x)
    pos_req += 2
    print("This is req_buf")
    packet = str(bytearray(req_buf))
    print("".join("{:02x} ".format(ord(c)) for c in packet))
    req_buf = req_buf + buf
    #print(x)
    pos_req += pos
    print("This is req_buf with buf")
    print(req_buf)

    packet = str(bytearray(req_buf))
    print("This is req_buf packet: ")
    print(packet)
    print("This is req_buf hex packet: ")
    print(" ".join("{:02x}".format(ord(c)) for c in list(packet)))
    appendData = "\nGET / HTTP/1.1\r\nHost: www.datami.com\r\nUser-Agent: curl/7.51.0\r\nAccept: */*\r\n\r\n"
    packet += appendData
    print(packet)
    x = 0
    tot_bytes = 0
    socket.send(packet)
    while True:
        #print(x)
        if (len(socket.recv(1024)) == 0):
            socket.close()
            break
        tot_bytes += len(socket.recv(1024))
        print(socket.recv(1024))
        x += 1
    print(tot_bytes)
コード例 #39
0
def catch_ctrl_c(sig, frame):
    global all_sockets
    print('--> CTRL C pressed!\nIsabela server is closing')
    for socket in all_sockets:
        socket.close()
    sys.exit()
コード例 #40
0
class MagicBucket( object ):
	'''Manages a connection (session) to the UMC server. Therefore it
	ensures that without successful authentication no other command is
	accepted. After the user has authenticated the commands are passed
	on to the Processor.'''
	def __init__( self ):
		self.__states = {}

	def __del__( self ):
		self.exit()

	def new( self, client, socket ):
		"""Is called by the Server object to annouce a new incoming
		connection.

		:param str client: IP address + port
		:param fd socket: a file descriptor or socket object
		"""
		CORE.info( 'Established connection: %s' % client )
		state = State( client, socket )
		state.signal_connect( 'authenticated', self._authenticated )
		self.__states[ socket ] = state
		notifier.socket_add( socket , self._receive )
		statistics.connections.new()

	def exit( self ):
		'''Closes all open connections.'''
		# remove all sockets
		for sock, state in self.__states.items():
			CORE.info( 'Shutting down connection %s' % sock )
			if state.processor is not None:
				state.processor.shutdown()
			notifier.socket_remove( sock )
			statistics.connections.inactive()
		# delete states
		for state in self.__states.values():
			del state
		self.__states = {}

	def _authenticated( self, success, state ):
		"""Signal callback: Invoked when a authentication has been
		tried. This function generates the UMCP response.

		:param bool success: True if the authentication was successful
		:param State state: the state object for the connection (see also :class:`~univention.management.console.protocol.session.State`)
		"""
		if success:
			statistics.users.add( state.username )
			state.authResponse.status = SUCCESS
		else:
			state.authResponse.status = BAD_REQUEST_AUTH_FAILED
		state.authenticated = success
		self._response( state.authResponse, state )
		state.authResponse = None

	def _receive( self, socket ):
		"""Signal callback: Handles incoming data. Processes SSL events
		and parses the incoming data. If a vaild UMCP was found it is
		passed to _handle.

		:param fd socket: file descriptor or socket object that reported incoming data
		"""
		state = self.__states[ socket ]
		data = ''

		try:
			data = socket.recv( RECV_BUFFER_SIZE )
		except SSL.WantReadError:
			# this error can be ignored (SSL need to do something)
			return True
		except ( SSL.SysCallError, SSL.Error ), error:
			statistics.connections.inactive()
			if self.__states[ socket ].username in statistics.users:
				statistics.users.remove( self.__states[ socket ].username )
			CRYPT.warn( 'SSL error: %s. Probably the socket was closed by the client.' % str( error ) )
			if self.__states[ socket ].processor is not None:
				self.__states[ socket ].processor.shutdown()
			notifier.socket_remove( socket )
			del self.__states[ socket ]
			socket.close()
			return False

		if not len( data ):
			notifier.socket_remove( socket )
			del self.__states[ socket ]
			socket.close()
			return False

		state.buffer += data

		msg = None
		try:
			while state.buffer:
				msg = Message()
				state.buffer = msg.parse( state.buffer )
				self._handle( state, msg )
		except IncompleteMessageError, e:
			CORE.info( 'MagicBucket: incomplete message: %s' % str( e ) )
コード例 #41
0
ファイル: concurrent.py プロジェクト: yanil3500/http-server
def main(socket, address):  # pragma: no cover
    """Main server loop. Logs data into log variable until it finds a certain character. Then returns response."""
    while True:
        try:
            #socket, address = server.accept()
            log = b""
            flag = True
            while flag is True:
                more = socket.recv(8)
                log += more
                if log.decode('utf8').endswith('\r\n\r\n'):
                    flag = False
            sys.stdout.write(log.decode('utf8'))
            URI = parse_request(log.decode('utf8'))
            content = resolve_uri(URI)
            response = response_ok(content)
            socket.sendall(response.encode('utf8'))
            socket.close()
        except KeyboardInterrupt:
            server.shutdown(socket.SHUT_WR)
            server.close()
            sys.exit(0)
        except TypeError:
            response = response_error(404)
            socket.sendall(response.encode('utf8'))
            socket.close()
        except LookupError:
            response = response_error(501)
            socket.sendall(response.encode('utf8'))
            socket.close()
        except ValueError:
            response = response_error(400)
            socket.sendall(response.encode('utf8'))
            socket.close()
        except IOError:
            response = response_error(404)
            socket.sendall(response.encode('utf8'))
            socket.close()
        except NameError:
            response = response_error(505)
            socket.sendall(response.encode('utf8'))
            socket.close()
コード例 #42
0
    def cleanup(self, socket):
        common.internal_print("Shutting down module: {0}".format(
            self.get_module_name()))
        socket.close()

        return
コード例 #43
0
 def closeSocket(self, socket):
     try:
         socket.close()
     except:
         pass
     socket = None
コード例 #44
0
# socket objects :::::::::::::::::::::::::::::::::::::::::::::::::::::::
s = socket(..., ...)

s.accept()
# блокирует приложение до тех пор, пока не придет сообщение от клиента. 
# Функция возвращает кортеж из двух параметров – объект самого соединения 
# и адрес клиента.
# Пассивно принимает клиентский запрос на установление соединения TCP,
# находясь в состоянии ожидания до поступления запроса на установления
# (блакирующий режим)

s.bind(address)
# устанавливает привязку адреса (пары состоящей из имени хоста и номера 
# порта) к сокету

s.close()
# обеспечивает закрытие сокета

s.connect(address)
# активно инициирует соединение сервера TCP

s.connect_ex(address)
# представляет собой расширенную версию метода connect(), которая 
# предусматривает возврат сообщений о возникших проблемах в виде кодов
# ошибок, а не генерирование исключения

s.detach()
# обеспечивает закрытие сокета без закрытия дескриптора файла и 
# возвра­щает дескриптор

s.dup()
コード例 #45
0
ファイル: uwebserver.py プロジェクト: harbaum/LittleBlockly
def send_404(socket):
    send_header(socket, "404 Not found")
    socket.send("<html><h1>404</h1>Not found</html>")
    socket.close()
コード例 #46
0
ファイル: test_pyserver.py プロジェクト: scorphus/ptvsd
    def test_completion_sockets_and_messages(self):
        t, socket = self.create_connections()
        self.socket = socket

        try:
            #now that we have the connections all set up, check the code completion messages.
            msg = quote_plus('math')
            send(socket, '@@IMPORTS:%sEND@@' % msg)  #math completions
            completions = self.read_msg()
            #print_ unquote_plus(completions)

            #math is a builtin and because of that, it starts with None as a file
            start = '@@COMPLETIONS(None,(__doc__,'
            start_2 = '@@COMPLETIONS(None,(__name__,'
            if ('/math.so,' in completions or
                '/math.cpython-33m.so,' in completions or 
                '/math.cpython-34m.so,' in completions or 
                'math.cpython-35m' in completions or 
                'math.cpython-36m' in completions or
                'math.cpython-37m' in completions
                ):
                return
            self.assertTrue(completions.startswith(start) or completions.startswith(start_2), '%s DOESNT START WITH %s' % (completions, (start, start_2)))

            self.assertTrue('@@COMPLETIONS' in completions)
            self.assertTrue('END@@' in completions)


            #now, test i
            msg = quote_plus('%s.list' % BUILTIN_MOD)
            send(socket, "@@IMPORTS:%s\nEND@@" % msg)
            found = self.read_msg()
            self.assertTrue('sort' in found, 'Could not find sort in: %s' % (found,))

            #now, test search
            msg = quote_plus('inspect.ismodule')
            send(socket, '@@SEARCH%sEND@@' % msg)  #math completions
            found = self.read_msg()
            self.assertTrue('inspect.py' in found)
            for i in range(33, 100):
                if str(i) in found:
                    break
            else:
                self.fail('Could not find the ismodule line in %s' % (found,))

            #now, test search
            msg = quote_plus('inspect.CO_NEWLOCALS')
            send(socket, '@@SEARCH%sEND@@' % msg)  #math completions
            found = self.read_msg()
            self.assertTrue('inspect.py' in found)
            self.assertTrue('CO_NEWLOCALS' in found)

            #now, test search
            msg = quote_plus('inspect.BlockFinder.tokeneater')
            send(socket, '@@SEARCH%sEND@@' % msg)
            found = self.read_msg()
            self.assertTrue('inspect.py' in found)
#            self.assertTrue('CO_NEWLOCALS' in found)

        #reload modules test
#        send(socket, '@@RELOAD_MODULES_END@@')
#        ok = self.read_msg()
#        self.assertEqual('@@MSG_OK_END@@' , ok)
#        this test is not executed because it breaks our current enviroment.

        finally:
            try:
                sys.stdout.write('succedded...sending kill msg\n')
                self.send_kill_msg(socket)


#                while not hasattr(t, 'ended'):
#                    pass #wait until it receives the message and quits.


                socket.close()
                self.socket.close()
            except:
                pass
コード例 #47
0
ファイル: client.py プロジェクト: SMRT-WSU/cards
def send(event=None):  # event is passed by binders.
    '''Handles sending of messages.'''
    message = my_message.get()
    my_message.set('')  # Clears input field.
    try:
        socket.send(bytes(message, 'utf-8'))
    except ConnectionResetError:
        pass

    if message == '/pwd':
        message = 'Your current directory is ' + os.getcwd() + '\n'
        lines = int(message_list.index('end-1c').split('.')[0])
        print(lines)
        fontsize = ('Courier', 10)
        message_list.config(state='normal')
        message_list.tag_config('hi', font=fontsize)
        message_list.insert(tkinter.END, message)
        message_list.tag_add('hi', str(lines + .0),
                             str(lines) + '.' + str(len(message)))
        message_list.config(state='disabled')
        message_list.see('end')

    hello = message.split(' ')
    if hello[0] == '/download':
        a = False
        data = bytearray()
        while a is False:
            data.extend(socket.recv(buffer))
            print('hi' + str(data))
            if data[-4:] == b'CC03':
                print('data ends in CC03')
                data = data[:-4]
                a = True
        print('escaped loop')
        f = open(hello[1], 'wb')
        print(data)
        f.write(data)
        f.close()
        fontsize = ('Courier', 10)
        messages('File downloaded', 'download', fontsize)

    if hello[0] == '/upload':
        print('hello')

        try:
            p = 0
            print('len' + str(len(hello)))
            for i in range(len(hello) - 1):
                if hello[i] == '-n':
                    name = ' '.join(hello[i + 1:])
                    print('name ' + name)
                    p = i
                if hello[i] == '-p':
                    filepath = ' '.join(hello[i + 1:p - 2])
                    print('filepath ' + filepath)

            f = open(filepath, 'rb')
            data = f.read()
            f.close()
            print('opened')
            padding = 64 - len(name)
            socket.send(bytes(name + padding * ' ', 'utf-8'))
            print('sent filename')
            socket.send(data)
            print('sent file data')
            socket.send(bytes('AA01', 'utf-8'))
        except FileNotFoundError:
            message = 'File Not Found\n'
            messages(message, 'hi')
        '''except:
            message = 'Failed to upload\n'
            lines = int(message_list.index('end-1c').split('.')[0])
            print(lines)
            fontsize = ('Courier', 10)
            user = len(message[2:])
            message_list.config(state='normal')
            message_list.tag_config('hi', font=fontsize)
            message_list.insert(tkinter.END, user)
            message_list.tag_add('hi', str(lines+.0), str(lines)+'.'+str(user))
            try:
                message_list.insert(tkinter.END, message)
            except: # Should check what kind of error i expect (to improve this)
                pass
            message_list.config(state='disabled')
            message_list.see('end')'''

    if message == '/colour list':
        f = open('./data/colours.txt')

        data = literal_eval(f.read())
        f.close()
        for i in data:
            message = ': ' + data[i] + '\n'
            user = i
            font = colour(data[i])
            fontsize = ('Courier', 10)
            messages(message, i, fontsize, font, user)
            lines = int(message_list.index('end-1c').split('.')[0])
            print(lines)
            message_list.config(state='normal')

            message_list.tag_config(font, foreground=font)
            message_list.insert(tkinter.END, user)
            message_list.tag_add(font, str(lines + .0),
                                 str(lines) + '.' + str(len(user)))
            try:
                message_list.insert(tkinter.END, message)
                message_list.config(state='disabled')
            except:  # Should check what kind of error i expect (to improve this)
                pass
            message_list.see('end')

    if message == '/quit':
        socket.close()
        canvas.destroy()
コード例 #48
0
ファイル: server.py プロジェクト: RolanAppdev/Appdev_MFRC
def kill_socket(socket):
    socket.close()
    print("socket closed")
コード例 #49
0
def socketClose(socket):
    print("    Socket closed: done")
    socket.close()
コード例 #50
0
ファイル: client.py プロジェクト: mattjeffery/voldemort
 def _close_socket(self, socket):
     try:
         if socket:
             socket.close()
     except socket.error, exp:
         logging.error('Error while closing socket: ' + str(exp))
コード例 #51
0
def logout(socket):
	#cleanup dictionaries and disconnect user
	del currently_online[socket]
	del user_login_time[socket]
	Connections.remove(socket)
	socket.close()
コード例 #52
0
def close_terminal(socket: socket.socket):
    coded_msg = EXIT.encode(ENCODING)
    socket.send(coded_msg)
    socket.close()

    logger.debug("Terminal closed")
コード例 #53
0
def NetClose(socket):
    socket.close()
コード例 #54
0
ファイル: GFSERVE.PY プロジェクト: scottlinuxden/e-catalog
	def start(self):
		"""after init, listen for commands."""
		from gfsocket import READY, ERROR, unpack_certified_data
		import sys
		verbose = self.verbose
		socket = self.socket
		connection = self.connection
		policies = self.policies
		admin_policy = self.admin_policy
		from select import select
		pending_connects = {}
		while 1:
			try:
				# main loop
				if self.check_loop<0: self.check_loop=5
				for i in xrange(self.check_loop):
					if verbose:
						print "main loop on", socket, connection
					# checkpoint loop
					sockets = [socket]
					if pending_connects:
						sockets = sockets + pending_connects.keys()
					# wait for availability
					if verbose:
						print "server: waiting for connection(s)"
					(readables, dummy, errors) = select(\
						sockets, [], sockets[:], self.select_timeout)
					if socket in errors:
						raise ServerError, \
							"listening socket in error state: aborting"
					# clean up error connection sockets
					for s in errors:
						del pending_connects[s]
						s.close()
					# get a new connection, if available
					if socket in readables:
						readables.remove(socket)
						(conn, addr) = socket.accept()
						if 1 or verbose:
							print "connect %s" % (addr,)
						reader = Packet_Reader(conn)
						pending_connects[conn] = reader
					# poll readable pending connections, if possible
					for conn in readables:
						reader = pending_connects[conn]
						mode = reader.mode
						if not mode==READY:
							if mode == ERROR:
								# shouldn't happen
								try:
									conn.close()
									del pending_connects[conn]
								except: pass
								continue
							else:
								try:
									reader.poll()
								finally:
									pass # AFTER DEBUG CHANGE THIS!
					# in blocking mode, service ready request, 
					# commit on no error
					for conn in pending_connects.keys():
						reader = pending_connects[conn]
						mode = reader.mode
						if mode == ERROR:
							try:
								del pending_connects[conn]
								conn.close()
							except: pass
						elif mode == READY:
							try:
								del pending_connects[conn]
								data = reader.data
								(actor_name, cert, md) = \
									unpack_certified_data(data)
								# find the policy for this actor
								if not policies.has_key(actor_name):
									if verbose:
										print "no such policy: "+actor_name
									reply_exception(NameError, 
										"no such policy: "+actor_name, conn)
									policy = None
								else:
									if verbose:
										print "executing for", actor_name
									policy = policies[actor_name]
									policy.action(cert, md, conn)
							except SHUTDOWN:
								if policy is admin_policy:
									print \
										"shutdown on admin policy: terminating"
									connection.close()
									socket.close()
									# NORMAL TERMINATION:
									return
							except RESTART:
								if policy is admin_policy:
									print \
										"restart from admin policy: restarting connection"
									connection.restart()
							except CHECKPOINT:
								if policy is admin_policy:
									print \
										"checkpoint from admin policy: checkpointing now."
									connection.checkpoint()
							except:
								tb = sys.exc_traceback
								info = "%s %s" % (sys.exc_type,
									str(sys.exc_value))
								if verbose:
									from traceback import print_tb
									print_tb(tb)
								print "error in executing action: "+info
								reply_exception(
									ServerError, "exception: "+info, conn)
						#break # stop after first request serviced!
			except:
				# except of main while 1 try statement
				tb = sys.exc_traceback
				ty = sys.exc_type
				va = sys.exc_value
				print "UNEXPECTED EXCEPTION ON MAINLOOP"
				from traceback import print_tb
				print_tb(tb)
				print "exception:", ty, va
			if not pending_connects:
				pending_connects = {}
			print "server: checkpointing"
			connection.checkpoint()
コード例 #55
0
ファイル: SERVIDOR.py プロジェクト: angrymasther/YourOwnFTP
def funcion_servidor(socket, cliente):
    direccion_actual = sys.argv[1]
    IP = cliente[0]
    while 1:
        instruccion = socket.recv(1024)  #read <a>,load <a>, ls
        if instruccion[0:4] == "read":
            if direccion_actual in instruccion[5:len(instruccion)]:
                nombre_archivo = instruccion[5:len(instruccion)]
                if read(nombre_archivo[1]) == "":
                    time.sleep(1)
                    socket.send(5)
                    time.sleep(3)
                    socket.send("vacio")
                    print getNow(
                    ) + "enviado contenido (vacio) de " + nombre_archivo + " a " + IP
                else:
                    nombre_archivo = instruccion[5:len(instruccion)]
                    socket.send(read(nombre_archivo)[0])
                    time.sleep(3)
                    socket.send(read(nombre_archivo)[1])
                    print getNow(
                    ) + "!enviado contenido de " + nombre_archivo + " a " + IP
            else:
                nombre_archivo = direccion_actual + instruccion[
                    5:len(instruccion)]
                if read(archivo)[1] == "":
                    socket.send(5)
                    time.sleep(1)
                    socket.send("vacio")
                    print getNow(
                    ) + "enviado contenido (vacio) de " + nombre_archivo + " a " + IP
                else:
                    time.sleep(1)
                    socket.send(read(nombre_archivo)[0])
                    time.sleep(1)
                    socket.send(read(nombre_archivo)[1])
                    print getNow(
                    ) + "enviado contenido de " + nombre_archivo + " a " + IP

        if instruccion[0:2] == "ls":
            time.sleep(1)
            socket.send(ls(direccion_actual))
            print getNow(
            ) + "enviado listado de archivo de " + direccion_actual + " a " + IP
        if instruccion[0:2] == "cd":
            time.sleep(1)
            try:
                os.chdir(direccion_actual + instruccion[3:len(instruccion)])
                direccion_actual += instruccion[
                    3:len(instruccion)] + "/"  #Cambiar "/" por "\\" en WINDOWS
                socket.send(os.getcwd())
                print getNow() + IP + "accedio a" + os.getcwd()
            except:
                socket.send("ERROR")
                print getNow() + IP + "No pudo acceder a" + os.getcwd()

        if instruccion[0:4] == "load":
            nombre = direccion_actual + instruccion[5:len(instruccion)]
            contenido = socket.recv(2048)
            load(nombre, contenido)
            print getNow() + IP + "subio " + nombre
        if instruccion[0:4] == "exit":
            socket.close()
            print getNow() + " " + IP + " salio"
            return 0
        if instruccion[0:4] == "walk":
            time.sleep(1)
            socket.send(walk())
            print getNow() + " " + IP + " pidio un walk"

        if instruccion[0:5] == "mkdir":
            time.sleep(1)
            nombre_carpeta = instruccion[6:len(instruccion)]
            try:
                os.mkdir(direccion_actual + nombre_carpeta)
                socket.send("carpeta creada")
                print getNow(
                ) + " " + IP + "creo la carpeta " + direccion_actual + nombre_carpeta
            except:
                socket.send("error al crear la carpeta")
                print getNow(
                ) + " " + IP + "no puedo crear la carpeta" + direccion_actual + nombre_carpeta
                direccion_actual = direccion_actual + "/"  #Cambiar "/" por "\\" en windows

        if instruccion[0:8] == "download":
            time.sleep(1)
            if os.path.isfile(instruccion[10:len(instruccion)]):
                socket.send(read(nombre_archivo)[0])
                time.sleep(1)
                socket.send(read(instruccion[10:len(instruccion)])[1])
                print getNow(
                ) + " " + "IP descargo " + instruccion[10:len(instruccion)]
            else:
                socket.send(20)
                time.sleep(1)
                socket.send("No hay archivo")
コード例 #56
0
def recieve_from_client(socket):
    global global_file_list
    while True:
        try:
            command = socket.recv(1024).decode()
        except ConnectionResetError:
            command = ""
        if len(command) < 1:
            for clients in clients_connected:
                if clients[2] == socket:
                    clients_connected.remove(clients)
            socket.close()
        # ---------------------------------------------------
        elif command == "exit":
            socket.close()
        # ---------------------------------------------------
        elif command[:4] == "list":
            lock.acquire(True)
            temp_list = global_file_list
            lock.release()
            list_str = ""
            final_list = []
            for item in temp_list:
                if item[0] not in final_list:
                    final_list.append(item[0])
            for item in final_list:
                list_str += item + "\n"
            list_str = list_str[:-1]
            socket.sendall((list_str+"###").encode())
         # ---------------------------------------------------
        elif command[:4] == 'read':
            if(check_extension(command[5:])):
                temp_list = global_file_list
                file_here = False
                for item in temp_list:
                    if item[0] == command[5:]:
                        file_here = True
                        if item[1] == 'self':
                            socket.sendall(('sending file').encode())
                            send_file(socket, command[5:])
                            print("file sent " + command[5:])
                            break
                        else:
                            socket.sendall(
                                ("connect to " + item[2][0]).encode())
                            break
                if(not file_here):
                    socket.sendall(('No Such File Exists').encode())
            else:
                socket.sendall(('File not readable').encode())
        # -------------------------------------------------------
        elif command[:5] == "write":
            temp_list = global_file_list
            file_here = False
            for item in temp_list:
                if item[0] == command[6:]:
                    file_here = True
                    if item[1] == 'self':
                        socket.sendall(('sending file').encode())
                        send_file(socket, command[6:])
                        print("file sent " + command[6:])
                        recieve_file(socket, command[6:])
                        print("file recieved " + command[6:])
                        replicate_update(command[6:])
                        print("file sent to update replicated file")
                        break
                    else:
                        socket.sendall(("connect to " + item[2][0]).encode())
                        break
            if(not file_here):
                socket.sendall(("file doesnot exist").encode())
        # -------------------------------------------------------
        elif command[:6] == "create":
            temp_list = global_file_list
            file_here = False
            for item in temp_list:
                if item[0] == command[7:]:
                    file_here = True
                    socket.sendall(("File already exists").encode())
                    break
            if(not file_here):
                socket.sendall(("create possible").encode())
                if((create_file(command[7:]))):
                    print("file created " + command[7:])
                    global_file_list.append([command[7:], 'self'])
                    for servers in servers_connected:
                        servers[2].sendall(('gfl add '+command[7:]).encode())
                    time.sleep(1)
                    replicate_create(command[7:])
                    print("file sent for replication")
                else:
                    print("create file error")
        # ------------------------------------------------------
        elif command[:6] == 'delete':
            temp_list = global_file_list
            file_here = False
            for item in temp_list:
                if item[0] == command[7:]:
                    file_here = True
                    if item[1] == 'self':
                        if((delete_file(command[7:]))):
                            socket.sendall(('file deleted').encode())
                            global_file_list.remove([command[7:], 'self'])
                            print("deleting replicates of the file")
                            replicate_delete(command[7:])
                            break
                        else:
                            socket.sendall(("file delete error").encode())
                    else:
                        socket.sendall(("connect to " + item[2][0]).encode())
                        break
            if(not file_here):
                socket.sendall(('No Such File Exists').encode())
        # -------------------------------------------------------
        elif command[:6] == "append":
            temp_list = global_file_list
            file_here = False
            for item in temp_list:
                if item[0] == command[7:]:
                    file_here = True
                    if item[1] == 'self':
                        socket.sendall(('sending file').encode())
                        send_file(socket, command[7:])
                        print("file sent " + command[7:])
                        recieve_file(socket, command[7:])
                        print("file recieved " + command[7:])
                        replicate_update(command[7:])
                        print("file sent to update replicated file")
                        break
                    else:
                        socket.sendall(("connect to " + item[2][0]).encode())
                        break
            if(not file_here):
                socket.sendall(("file doesnot exist").encode())
        # ---------------------------------------------------------
        else:
            socket.sendall(("error from server").encode())
コード例 #57
0
    def evaluate_request(self, socket):
        request = socket.request
        print(socket.addr, request)
        close = False
        write = True
        action = request['action']
        user = request['user']
        if action == 'login':
            print("agregar usuario")
            player = Player(socket, user)
            if user not in self.players.keys():
                self.players[user] = player
                print("usuario agregado")
                content = {
                    "status": "login",
                    "rooms": self.get_rooms(),
                    "players": self.get_players()
                }
            else:
                print("usuario ya existe")
                content = {
                    "status": "error",
                    "message": f'User "{user}" exists'
                }
                close = True

        elif user in self.players.keys():
            if action == 'get_rooms':
                print("mostrar rooms")
                content = {"status": "get_rooms", "rooms": self.get_rooms()}

            elif action == 'create_room':
                print("agregar room")
                room_name = request['room']
                room = Room(room_name)
                if room_name not in self.rooms.keys():
                    self.rooms[room_name] = room
                    print("room agregado")
                    content = {
                        "status": "room_created",
                        "rooms": self.get_rooms()
                    }
                else:
                    print("room ya existe")
                    content = {
                        "status": "error",
                        "message": f'Room "{room_name}" exists'
                    }

            elif action == 'join_room':
                print("usuario unido a room")
                room_name = request['room']
                if room_name in self.rooms.keys():
                    connected = self.rooms[room_name].connect_player(
                        self.players[user])
                    if connected:
                        self.players[user].change_state('inroom')
                        content = {
                            "status":
                            "join_room",
                            "room":
                            room_name,
                            "players_in_room":
                            self.rooms[room_name].get_players_in_room()
                        }
                        socket.write(content)
                        write = False
                        self.rooms[room_name].try_start()
                    else:
                        content = {
                            "status": "error",
                            "message": f'Room "{room_name}"is full'
                        }

                else:
                    content = {
                        "status": "error",
                        "message": f'Room "{room_name}"doesnt exists'
                    }

            elif action == 'get_players':
                print("mostrar jugadores")
                content = {
                    "status": "get_players",
                    "players": self.get_players()
                }

            elif action == 'message_to_room':
                print("enviar mensaje a room")
                room = request['room']
                message = request['message']
                content = {
                    "status": "message_to_room",
                    "from": user,
                    "room": room,
                    "message": message
                }
                if (self.message_to_room(content, room)):
                    content = {
                        "status": "message_to_room_sent",
                        "from": user,
                        "room": room,
                        "message": message
                    }
                else:
                    content = {
                        "status": "error",
                        "message": 'couldnt send message to room'
                    }

            elif action == 'message_to_player':
                print("enviar mensaje a jugador")
                to = request['to']
                message = request['message']
                content = {
                    "status": "message_to_player",
                    "from": user,
                    "to": to,
                    "message": message
                }
                if (self.message_to_player(content, to)):
                    content = {
                        "status": "message_to_player_sent",
                        "from": user,
                        "to": to,
                        "message": message
                    }
                else:
                    content = {
                        "status": "error",
                        "message": 'couldnt send message to player'
                    }

            elif action == 'card_pick':
                print('seleccion del jugador')
                room = request['room']
                pick = request['card']
                player_name = user
                if room in self.rooms.keys():
                    self.rooms[room].card_pick(pick, player_name)
                    write = False
                else:
                    content = {
                        "status": "error",
                        "message": 'room doesnt exists'
                    }

            elif action == 'disconnect':
                print("bye player")
                self.players.pop(user)
                content = {"status": "disconnect"}
                close = True

            # TODO: enviar y recibir mensajes (chat)
            # TODO: logica del juego
            else:
                content = {
                    "status": "error",
                    "message": f'Command "{action}" doesnt exists'
                }
        else:
            content = {"status": "error", "message": 'login first'}

        if write:
            socket.write(content)
        if close:
            socket.close()
コード例 #58
0
ファイル: serv.py プロジェクト: fmresearchnovak/Leaks
def handleConn(socket, addr):
    data = socket.recv(64)
    string = data.decode("utf-8")
    print("Message from " + str(addr[0]) + ": " + str(string))
    socket.close()