2015-04-03 2 views
-1

привет я новичок в android здесь я собираюсь отправить какой-то текст в форме
тост от одного приложения для Android к другому с помощью сокета, здесь я устанавливаю приложение в различные устройства Android, где я настраиваю ip через Редактировать текст из приложения приемника сообщений, когда я иду через кнопку change_URL тост сообщение должен отображаться в другом приложении, когда я пытаюсь получить Log
(соединение не выполнено: ECONNREFUSED (соединение отказано)) и ..... мне нужна помощь
если кто-нибудь уже пробовал это.java.net.ConnectException: не удалось подключиться к /192.xxx.x.51 (порт 8080): соединение не выполнено: ECONNREFUSED (соединение отклонено)

-> Класс Server_test_send

`public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sender_main_); 
    text = (TextView) findViewById(R.id.msg_view); 
    updateConversationHandler = new Handler(); 
    // this.serverThread = new Thread(new ServerThread()); 
    //this.serverThread.start(); 
    testBtn = (Button) findViewById(R.id.TestBtn); 
    urlbtn = (Button) findViewById(R.id.changeurl); 
    changeurl = new Dialog(this); 
    changeurl.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    changeurl.setContentView(R.layout.changeurl); 
    okbt = (Button) changeurl.findViewById(R.id.okbt); 
    utlet = (AutoCompleteTextView) changeurl.findViewById(R.id.urlet); 
    urlbtn.setOnClickListener(new View.OnClickListener() { 

@Override 
    public void onClick(View v) { 
    changeurl.show(); 
     } 
    }); 
    okbt.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      path = utlet.getText().toString(); 
      SharedPreferences sp = getSharedPreferences(
        "doorcameraurlsas", 
        Activity.MODE_PRIVATE); 
      SharedPreferences.Editor editor = sp 
        .edit(); 
      editor.putString("doorcameraurlsas", path); 
      editor.commit(); 
      new SendText().execute(path); 
      changeurl.dismiss(); 
     } 
    }); 
    testBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     } 
    }); 
    } 
public class SendText extends AsyncTask<String, Void, Void> { 
    @Override 
    protected Void doInBackground(String... strings) { 
     try { 
      String url = strings[0]; 
      client = new Socket(url, 8080); 
      printwriter = new PrintWriter(client.getOutputStream(), true); 
      printwriter.write("Message from other app"); 
      printwriter.flush(); 
      printwriter.close(); 
      client.close(); 
     } catch (UnknownHostException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
     } 
     } 
    } 

Another Class 

public class MainActivity_Receiver extends Activity implements   
View.OnClickListener{ 
private String off; 
private Switch enbmode; 
private Socket socket; 
private static final int SERVERPORT = 8080; 
private static final String SERVER_IP = "192.168.1.60"; 
ServerSocket serverSocket; 
private static Socket clientSocket; 
private static InputStreamReader inputStreamReader; 
private static BufferedReader bufferedReader; 
private static String message; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    new Thread(new ClientThread()).start(); 
} 
public void onClick(View view) { 
    try { 
     enbmode = (Switch) findViewById(R.id.switch1); 
     String str = enbmode.getText().toString(); 
     PrintWriter out = new PrintWriter(new BufferedWriter(
       new OutputStreamWriter(socket.getOutputStream())), 
       true); 
     out.println(str); 
    } catch (UnknownHostException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    try { 
     serverSocket = new ServerSocket(8080); // Server socket 
    } catch (IOException e) { 
     Log.i(" PortID","Could not find the port:4444"); 
    } 
    Log.i("ServerStarted"," with port id :4444"); 

    while (true) { 
     try { 
      clientSocket = serverSocket.accept(); 
      inputStreamReader = new 
     InputStreamReader(clientSocket.getInputStream()); 
      bufferedReader = new BufferedReader(inputStreamReader); 
      message = bufferedReader.readLine(); 
      Toast.makeText(getApplicationContext(),"The Massage from 
      client "+message,Toast.LENGTH_LONG).show(); 
      Log.d("Message ", " From server "+message); 
      inputStreamReader.close(); 
      clientSocket.close(); 

     } catch (IOException ex) { 
      Log.i("Problem","Problem in message reading"); 
     } 
    } 
    } 
    class ClientThread implements Runnable { 
    @Override 
    public void run() { 
     try { 
      InetAddress serverAddr = InetAddress.getByName(SERVER_IP); 
      socket = new Socket(serverAddr, SERVERPORT); 
     } catch (UnknownHostException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 

     } 

    } 
    } 

`

ответ

0

Если через соединение получают отказ, это указывает на то, что был достигнут целевой узел, но он отказался принять соединение.

В стандартном случае это означает, что сокет не прослушивает указанный порт.

+0

Эй, вы знаете, как это решить? Я испытываю ту же проблему. –

+0

@eyesenberg: запустите сервер, прослушивающий ip-адрес: порт, к которому вы хотите подключиться. – alk

Смежные вопросы

 Смежные вопросы