CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

SOCKET ANDROID: client comunica col server ma server non comunica col client

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2012
    Messaggi
    31

    Ringraziamenti
    7
    Ringraziato 0 volte in 0 Posts
    Predefinito

    SOCKET ANDROID: client comunica col server ma server non comunica col client

    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
    codice:
    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);
    	}
    
    	
    
    }
    DataDisplay.java
    codice:
    package com.example.serversocket;
    
    public interface DataDisplay {
    void Display(String message);
    
    }
    MySever.java
    codice:
    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());
    }
    };
    %Client code
    MainActivity.java
    codice:
    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);
    }
    	
    	}
    PLEASE HELP MEE
    Ultima modifica di jetmcquack; 02-11-13 alle 15:27

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Jun 2012
    Messaggi
    31

    Ringraziamenti
    7
    Ringraziato 0 volte in 0 Posts
    Thumbs up

    upupupupupupupupupupupupupupupupupupupupupupupup

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy