안녕하세요 개발자 여러분들 ㅠㅠ 큰 고난에 막혀 이렇게 질문을 합니다

일단 문제가 되는 부분은 client부분이지만 일단 server부분 java프로젝트 코딩은..

------------------------------------------------------------------------

import java.net.*;

import java.io.*;


public class msgsend1

{

public static void main(String args[])

{

ServerSocket serv_sock;

Socket acp_sock;

DataInputStream read;

DataOutputStream write;

String recv_str;

int recv_int;

try

{

serv_sock = new ServerSocket(9090,10);

System.out.println("클라이언트 접속을 기다리기 시작합니다.");

while(true)

{

acp_sock = serv_sock.accept();

read = new DataInputStream

(acp_sock.getInputStream());

write = new DataOutputStream

(acp_sock.getOutputStream());

System.out.println("클라이언트출입: " +acp_sock.getInetAddress().getHostName());

write.writeInt(9999);

System.out.println("9999를 클라이언트에게 보냈습니다.");

System.out.println("클라이언트로부터 응답을 기다립니다.");

recv_str = read.readUTF();

System.out.println("클라이언트 왈: " +recv_str);

acp_sock.close();

}

}

catch(IOException e)

{

e.printStackTrace();

}

}

}


--------------------------------------------------------------------------------


위와같이 어떤분의 데이터를 보내는 코딩을 보고 참조했구요


client부의 안드로이드 프로젝트는 다음과 같습니다.


--------------------------------------------------------------------------------


package jk.rotest.test;


import kr.robomation.physical.Alpha;


import java.io.*;

import java.net.*;


import org.roboid.robot.Device;

import org.roboid.robot.Robot;

import org.smartrobot.android.RobotActivity;


import android.os.Bundle;



public class GotestActivity extends RobotActivity 


{

private Device mLeftWheelDevice;

private Device mRightWheelDevice;

private Device mLeftEyeDevice;

private Device mRightEyeDevice;


    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) 

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }

    

    @Override

    public void onInitialized(Robot robot)

    {

     mLeftWheelDevice = robot.findDeviceById(Alpha.EFFECTOR_LEFT_WHEEL);

     mRightWheelDevice = robot.findDeviceById(Alpha.EFFECTOR_RIGHT_WHEEL);

     mLeftEyeDevice = robot.findDeviceById(Alpha.EFFECTOR_LEFT_EYE);

     mRightEyeDevice = robot.findDeviceById(Alpha.EFFECTOR_RIGHT_EYE);

    

    }

    public void main(String args[]) throws IOException

    {

     BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    

     Socket sock;

     DataInputStream read;

     DataOutputStream write;

    

     int recv_int;

     String send_str = "";

    

     try

     {

     sock = new Socket("192.168.0.1",9090);

    

     read = new DataInputStream

    

     (sock.getInputStream());

     write = new DataOutputStream

    

     (sock.getOutputStream());

    

    

    

     recv_int = read.readInt();

    

    

    

     send_str = in.readLine();

     write.writeUTF(send_str);

    

     sock.close();

    

    

     int[] red = new int[]{255,0,0};

     int[] green = new int[]{0,255,0};

         switch(recv_int)

         {

         case 9999 :

         {

         mLeftWheelDevice.write(20);

         mRightWheelDevice.write(-20);

         mLeftEyeDevice.write(red);

         mRightEyeDevice.write(green);

        

     }

         break;

         case 1111 : 

         {

         mLeftWheelDevice.write(20);

         mRightWheelDevice.write(-20);

         mLeftEyeDevice.write(red);

         mRightEyeDevice.write(green);

        

         }

         default:

         {

         mLeftWheelDevice.write(50);

         mRightWheelDevice.write(-50);

         mLeftEyeDevice.write(red);

         mRightEyeDevice.write(red);

         }

         break;

         }

     }

    

     catch(IOException e)

     {

     e.printStackTrace();

     }

    

    }

    

}

-------------------------------------------------------------------------------------------------


client의 코딩은 빨간부분을 제외하고는 로봇을 제어하는부분이라서,,


무튼 서버에서 클라이언트의 접속을 기다리다가, 접속이 확인되면 서버에서 9999라는 값을 recv_int값에 실어서 보내고


클라이언트에서 그 값을 받아서 중간에 스위치 케이스 문을 통해 로봇이 9999라는 값에 맞게 움직이게 하는 코딩인데요,,


일단 데이터 하나만 와도 움직이기만 하면 나머지는 술술 풀리겟는데 ㅠㅠ


일단 서버측에서 자바 메시지 확인하면 무한정 클라이언트의 접속을 기다리기만 하네요,,


빨간부분은 자바프로젝트로 작성했을때에는 실행되는것을 확인하고,


안드로이드에서 적용이 되지 않는  println 구문 부분만 삭제한건데,, 일단 TCP가 뚫리지 않는것 같습니다..



개발자 분들 도와주세요 ㅠㅠ


아래가 성공한 자바프로젝트 client 부분입니다


--------------------------------------------------------------------------------


import java.io.*;

import java.net.*;


public class msgrecv1 


{

    public static void main(String args[]) throws IOException

    {

     BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    

     Socket sock;

     DataInputStream read;

     DataOutputStream write;

    

     int recv_int;

     String send_str = "";

    

     try

     {

     sock = new Socket("127.0.0.1",9090);

    

     read = new DataInputStream

    

     (sock.getInputStream());

     write = new DataOutputStream

    

     (sock.getOutputStream());

    

     System.out.println("접속성공!");

    

     recv_int = read.readInt();

     System.out.println("서버왈 : " + recv_int);

    

     System.out.print("서버에게전달할말:");

     send_str = in.readLine();

     write.writeUTF(send_str);

    

     sock.close();

     }

     catch(IOException e)

     {

     e.printStackTrace();

     }

    }

}

-----------------------------------------------------------------------------------------

아참.. 공지사항 읽었습니다.