=========================================클라이언트 코드 ====================================== 


package org.socket;
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;

import android.util.Log;

public class socketClient {

    public socketClient (  String Ip , int port  , String Msg    ) {
  
    try{
    String serverIp =Ip;
   
    Log.v("SocketClient","서버에 연결중입니다. 서버 IP :" +serverIp);
   
    Socket socket = new Socket(serverIp ,port);
   
    OutputStream out = socket.getOutputStream();
    DataOutputStream dos = new DataOutputStream(out);
   
    Log.v("SocketClient","데이터 전송 시작하겠습니다.");
    Thread.sleep(1000);
   
    dos.writeUTF(Msg);
   
    Thread.sleep(1000);
   
    Log.v("SocketClient","서버와의 연결을 종료합니다");
   
    dos.close();
    out.close();
   
   
    }catch(Exception e){
    Log.v("socketError" , e.toString());
    e.printStackTrace();
    }
    
    }

}

===========================서버코드 =======================================

package org.socketServer;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class Android_socket_ServerActivity extends Activity {

TextView curIP_tv ;
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        
        String curIP =getLocalIpAddress();
        curIP_tv = (TextView) findViewById(R.id.curIP);
        curIP_tv.setText(curIP);
        
       Thread android_sockServer = new Thread(new socketServer(7878 , getBaseContext()));
       android_sockServer.start();
        
}
    
    
    static String getLocalIpAddress()
    {
     final String IP_NONE = "N/A";
     final String WIFI_DEVICE_PREFIX = "eth";
     
     String LocalIP = IP_NONE;
     try {
            for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
                NetworkInterface intf = en.nextElement();           
                for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                     if( LocalIP.equals(IP_NONE) )
                        LocalIP = inetAddress.getHostAddress().toString();
                     else if( intf.getName().startsWith(WIFI_DEVICE_PREFIX) )
                        LocalIP = inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException e) {
            Log.e("DEBUG_TAG", "getLocalIpAddress Exception:"+e.toString());
        }
        return LocalIP;
    }
    
    
}





========================현재 이렇게 코드가 짜여져있는데요
실행을 해보니까
TimeOutException이 계속적으로뜹니다.

이유가 뭔가 해서 찾아보니 
서버의 IP주소를 반환하는 

서버는 getLocalAddress()에서 반환되는값이
3g일때는 10.0.0.5 이런식이고
WIFI 일때는 fe80::d217:6aff:fe73:5ca1%wlan0

이렇게 반환됩니다.

서버의 IP를 못잡아서 자꾸 TimeOutException이 뜨는거같은데
해결방법이 없을까요?
아니면 ,, 안드로이드를 서버로 사용할때 주의해야 할 것들 같은거 없나요 ㅜㅜ 
도오와주시입쇼 ㅜㅜ