print('Connected to stream server') # Build a KRPC.GetStatus call to be streamed stream_call = KRPC.ProcedureCall() stream_call.service = 'KRPC' stream_call.procedure = 'GetStatus' # Call KRPC.AddStream to add the stream call = KRPC.ProcedureCall() call.service = 'KRPC' call.procedure = 'AddStream' arg = KRPC.Argument() arg.position = 0 arg.value = stream_call.SerializeToString() call.arguments.extend([arg]) request = KRPC.Request() request.calls.extend([call]) send_message(rpc_conn, request) # Receive the response response = recv_message(rpc_conn, KRPC.Response) # Check for an error in the response if response.HasField('error'): raise RuntimeError('ERROR: ' + str(response.error)) # Check for an error in the results assert (len(response.results) == 1) if response.results[0].HasField('error'): raise RuntimeError('ERROR: ' + str(response.error))