Buonasera,ho un computer cn win 7 collegato tramite ethernet ad un router senza connessione internet. Quello ke voglio fare e' inviare messaggi di testo tipo chat a questo computer tramite un cellulare android. Ho creato server e client utilizzando le socket,ma non sembra funzionare.qual e' la soluzione migliore?
Com faccio a sapere quale indirizzo ip utilizzare? Di seguito trovate il codice delle due applicazioni.
Questo é il codice dell applicazione lato client ke gira su cellulare:
package it.devapp.activity;
import java.net.*;
import java.io.*;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Client extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView vt = (TextView) findViewById(R.id.textView1);
try
{
Socket s1 = new Socket ("0.0.0.0", 8888);
DataOutputStream outputStream = new DataOutputStream(s1.getOutputStream());
DataInputStream inputStream = new DataInputStream(s1.getInputStream());
vt.setText(inputStream.readUTF());
outputStream.writeUTF("Questa ? una prova");
// vt.setText("Risposta del server: " + dis.readLine());
// Al termine, chiude lo stream di comunicazione e il socket.
s1.close();
inputStream.close();
outputStream.close();
System.out.println("Chiusura connessione effettuata");
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
Qui invece trovate il codice dell applicazione lato server che gira su pc
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
/**
* @param args
*/
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
DataInputStream inputStream = null;
DataOutputStream outputStream = null;
try {
serverSocket = new ServerSocket (8888);
System.out.println("Socket iniziata, ip: "+serverSocket.getLocalSocketAddress());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
System.out.println("Prove");
socket = serverSocket.accept();
inputStream = new DataInputStream(socket.getInputStream());
outputStream = new DataOutputStream(socket.getOutputStream());
System.out.println("ip: "+socket.getInetAddress());
//System.out.println("messaggio: "+ inputStream.readUTF());
outputStream.writeUTF("hello!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
L'applicazione comprende la uses-permission di internet sul lato server per android
Attendo aiuti e saluto