Pessoal é o seguinte,
Estou desenvolvendo uma aplicação e preciso de que dois celulares android se comuniquem.
Consegui fazer com que os dois entrem no servidor(que está no computador)e a partir dai se comuniquem.
Não sei muito de redes, por isso gostaria muito de uma luz para saber por onde proceder.
Eis meus códigos:
Servidor
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args){
ServerSocket serverSocket = null;
Socket socket = null;
DataInputStream dataInputStream = null;
DataOutputStream dataOutputStream = null;
System.out.println("IP da rede " +recuperarIpDaRede());
try {
serverSocket = new ServerSocket(8888);
System.out.println("Aguardando Conexoes");
} catch (IOException e) {
e.printStackTrace();
}
while(true){
try {
socket = serverSocket.accept();
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream = new DataOutputStream(socket.getOutputStream());
//dataOutputStream.writeUTF(recuperarIpDaRede());
System.out.println("Mensagem: " + dataInputStream.readUTF());
} catch (IOException e) {
e.printStackTrace();
}
finally{
if( socket!= null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if( dataInputStream!= null){
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if( dataOutputStream!= null){
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
private static String recuperarIpDaRede(){
InetAddress ia = null;
try {
ia = InetAddress.getLocalHost();
} catch (Exception e) {
e.printStackTrace();
}
return ia.getHostAddress();
}
}
Cliente
package com.android;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class AppClienteAndroid extends Activity {
EditText texto;
EditText textoIp;
String ipdarede = null;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
texto = (EditText)findViewById(R.id.campoTexto);
textoIp = (EditText)findViewById(R.id.campoTextoIp);
tv = (TextView)findViewById(R.id.tvStatus);
Button buttonCon = (Button)findViewById(R.id.botaoConecta);
buttonCon.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0){
ipdarede = textoIp.getText().toString();
tv.setText("Conectado");
}
});
Button button = (Button)findViewById(R.id.botao);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View arg0){
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
socket = new Socket(ipdarede, 8888);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeUTF(texto.getText().toString());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if (socket != null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (dataOutputStream != null){
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (dataInputStream != null){
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
});
}
}