0

请不要生我的气。我有两个问题,我认为主题非常相似,所以我决定将它们合并为一个。我在 android 上有我的应用程序,它使用传感器进行一些计算。我将结果存储在我的数据库中。我想要做的是将我的数据从我的手机发送到我的桌面应用程序,还带有一个数据库(点击按钮)。

更准确地说,这里有一个例子:我的光传感器读取当前的光强度。可以说它是1000lux。现在,当我在我的 android 应用程序中单击“发送”按钮时,它会将此值发送到我的桌面应用程序数据库。该桌面应用程序将读取该值并将其显示给用户。

可以通过WIFI吗?或者通过网络更好,所以我不会受到距离的限制?android如何管理这种通信?

我的第二个问题是,如果在我的 PC 上控制媒体播放器与我所说的相似。

编辑:

我做了一些研究,发现了一个 Socket 教程。我试过了,就像它在那里一样。所以我在我的 android 应用程序中有这个:

public class Client extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_client);
    Client myCli = new Client();
    try {
        myCli.run();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_client, menu);
    return true;
}


public void run() throws Exception {

    Socket mySkt = new Socket("192.168.1.6", 9999);

     PrintStream myPS = new PrintStream(mySkt.getOutputStream());

     myPS.println("Hello server");

     BufferedReader myBR = new BufferedReader
    (new InputStreamReader(mySkt.getInputStream()));


}

}

这在netBeans中:

//Author: WarLordTech
//Website: http://www.youtube.com/user/WarLordTech
import java.io.*;
import java.net.*;

public class Server {
  public static void main(String[] args) throws Exception{
      Server myServ = new Server();
      myServ.run();
  }

  public void run() throws Exception{
      ServerSocket mySS = new ServerSocket(9999);
      Socket SS_accept = mySS.accept();

      BufferedReader SS_BF= new BufferedReader(new InputStreamReader
        (SS_accept.getInputStream()));

      String temp = SS_BF.readLine();
      System.out.println(temp);

      if (temp!=null) {
        PrintStream SSPS = new PrintStream(SS_accept.getOutputStream());
        SSPS.println("Got something");
      }
   }
}

它仍然无法正常工作。我必须以某种方式设置我的网络吗?

4

1 回答 1

0

您可以使用 TCP 套接字来做到这一点。许多语言都有 Socket 编程的实现,因此您将“需要”用 Java 对桌面应用程序进行编程(当然这总是可能的!)。

Java中的套接字教程

这将通过网络和本地 wifi 工作。您可以对本地 wifi 使用其他方法,例如 UDP 连接。您需要设置 TCP 服务器并确保您可以访问等。

可能还有其他方法可以做到这一点,但这并不是一件容易的事!

于 2013-03-12T16:11:52.400 回答