我想使用以下代码从Android设备发送字符串到Java桌面应用程序

时间:2012-02-22 19:35:03

标签: java android

在Android设备中,客户端我使用以下代码

sock = new Socket("10.0.2.2", 3390);        
   // r = new BufferedReader(new InputStreamReader(sock.getInputStream()));
    out = new BufferedWriter(new OutputStreamWriter(sock
        .getOutputStream()));
    String s = "abc";
    out.write(s);

在服务器端,这是java桌面应用程序,我使用以下代码

         InputStream m_Input = null;
    ServerSocket MyService = null;
try {
   MyService = new ServerSocket(3390);
  serviceSocket = MyService.accept();
   m_Input = serviceSocket.getInputStream();
    }
    catch (IOException e) {
       System.out.println(e);
    }

当我同时运行客户端,即android没有向服务器发送请求  用于读取数据我使用以下代码

byte[] data = null;
 try
   {
    int ch = 0;
      int length = m_Input.read();
    if (length >0)
      data= new byte[length];
      length = 0;

      while (length != data.length)
      {
               ch = m_Input.read(data, length, data.length-length);

              if (ch == -1)
              {
               //   System.out.println("ch is 0");
               break;

              }
              length +=ch;
      }


   }
   catch (IOException e)
   {
        System.err.println(e);
   }


   return new String(data);


  }

1 个答案:

答案 0 :(得分:0)

尝试在out.flush();之后调用out.write(s);

这应该强制客户端向服务器发送“abc”。 请参阅OutputStream.flush上的文档。