salve a tutti volevo fare una piccola chat android per due cellulari e ho provato a utilizzare il codice usato in questo tutorial:
http://http://www.youtube.com/watch?v=KgOrhLu5XUo
pur avendo dato i permessi per internet contrariamente al tizio muto del video a me il client riesce a ricevere la stringa dal server ma il serve non riesce a ricevere il messaggio dal client.
Facendo delle prove con un server in java e con telnet ho visto che l'app client funziona (invia il messaggio)
il tutorial utilizza l'idirizzo 127.0.0.1 e provando le due app in locale sullo stesso avd mostra il corretto funzionamento delle stesse, nel mio caso le app non funzionano ne sullo stesso avd ne con l'indirizzo 10.0.2.2 ne con 10.0.2.15 (letto dalle info dell' avd) ne su due dispositivi fisici.
potreste darmi qualche suggerimento?
ringrazio anticipatamente chi mi dedicherà un minuto.
%SERVER CODE
MainActivity.java
DataDisplay.javacodice:package com.example.serversocket; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.TextView; public class MainActivity extends Activity implements DataDisplay { TextView serverMessage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); serverMessage=(TextView)findViewById(R.id.textView1); } public void connect(View view) { MyServer server= new MyServer(); server.setEventListener(this); server.startListening(); } public void Display(String message) { serverMessage.setText(""+message); } }
MySever.javacodice:package com.example.serversocket; public interface DataDisplay { void Display(String message); }
%Client codecodice:package com.example.serversocket; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; import android.os.Handler; import android.os.Message; public class MyServer { Thread m_objThread; ServerSocket m_server; String m_strMessage; DataDisplay m_dataDisplay; Object m_connected; public MyServer() { } public void setEventListener(DataDisplay dataDisplay) { m_dataDisplay=dataDisplay; } public void startListening() { m_objThread= new Thread(new Runnable() { public void run() { try{ m_server= new ServerSocket(2001); Socket connectedSocket = m_server.accept(); Message clientmessage=Message.obtain(); ObjectInputStream ois = new ObjectInputStream(connectedSocket.getInputStream()); String strMessage=(String) ois.readObject(); clientmessage.obj=strMessage; mHandler.sendMessage(clientmessage); ObjectOutputStream oos = new ObjectOutputStream(connectedSocket.getOutputStream()); oos.writeObject("Connected"); oos.flush(); ois.close(); oos.close(); m_server.close(); }catch (Exception e) { Message msg3=Message.obtain(); msg3.obj=e.getMessage(); mHandler.sendMessage(msg3); } }}); m_objThread.start(); } Handler mHandler = new Handler(){}; public void handleMessage(Message status){ m_dataDisplay.Display(status.obj.toString()); } };
MainActivity.java
PLEASE HELP MEEcodice:package com.example.clientsocket; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.TextView; import java.net.*; public class MainActivity extends Activity { TextView serverMessage; Thread m_objThreadClient; Socket clientSocket; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); serverMessage = (TextView)findViewById(R.id.textView1); } public void Start(View view) { m_objThreadClient=new Thread(new Runnable() { public void run() { try { clientSocket = new Socket("127.0.0.1",2001); ObjectOutputStream oos =new ObjectOutputStream(clientSocket.getOutputStream()); oos.writeObject("Hallo there"); Message serverMessage= Message.obtain(); ObjectInputStream ois = new ObjectInputStream(clientSocket.getInputStream()); String strMessage = (String)ois.readObject(); serverMessage.obj=strMessage; mHandler.sendMessage(serverMessage); oos.flush(); oos.close(); ois.close(); }catch (Exception e) { e.printStackTrace(); } } }); m_objThreadClient.start(); } Handler mHandler = new Handler() { public void handleMessage(Message msg){ messageDisplay(msg.obj.toString()); } }; public void messageDisplay(String servermessage) { serverMessage.setText(""+servermessage); } }

 LinkBack URL
 LinkBack URL About LinkBacks
 About LinkBacks 
			
			 
 Ultima modifica di jetmcquack;  02-11-13 alle
					
						Ultima modifica di jetmcquack;  02-11-13 alle  
					
					
					
						 Rispondi quotando
  Rispondi quotando 
