通过wifi从android发送字符串并在PC中接收(java程序)

时间:2013-06-22 20:06:17

标签: java android

我想制作简单的Android应用程序,其中我只有textview和一个按钮。单击该按钮时,将在PC上广播和接收textview中的字符串。我是Android编程和网络编程的新手。 1.请建议在PC中使用什么工具。 2.实现这一目标的一些简单步骤。 3.一些健康的教程,以便更好地理解事物。

对不起,如果我听起来很愚蠢:P 提前谢谢。

3 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!

听起来你想首先进入编程Android的世界。那很好,但你应该从某个地方开始。我见过的最好的系列教程是The New Boston。视频非常容易理解,系列由200个视频组成。它涵盖了从下载和安装Eclipse(这是一个可用于开发Android应用程序的工具)到一些非常先进的概念的所有内容。因此,如果您有基本的了解,您可以选择要观看的视频,如果您想要完整的速成课程,只需观看它们即可。它还有大约3000种其他所有编程语言的视频。例如,如果您还不知道,则需要Java

在P.C.如果您没有设置可用的实时服务器,我建议您通过此链接XAMPP下载XAMPP。它允许您在自己的计算机上创建许多东西,所有这些都是免费的。例如带有phpmyadmin的SQL数据库和许多其他东西。总而言之,如果您在新波士顿观看200个视频中的一些视频,您将更好地了解您需要做些什么来实现您的目标。您还将更好地了解将来要具体询问的内容。希望这有帮助,如果您还需要其他任何东西,请询问

答案 1 :(得分:0)

嗯,我不确定这是不是最好的方式,但仍然是一种方式,你可以使用SMB用于android,而对于PC只是一个普通的Java程序,所以:

1:for PC you could use Java (since you use Java as a topic i supose that you know how to do a single program with this programming language

作为实现数字1的建议,您可以执行一个程序,每隔3-5秒不断检查一个空文件是否有数据或仍然为空,如果有数据然后显示带有数据的Dialog,showMessageDialog会做这份工作。

2:for android use what i said first, with that you could read or write a File on the PC from your android device, of course if both the PC and android device are in the same network

此时,只需在java程序检查的PC上的文件中编写TextView或EditText的String,让我知道这是否对您有所帮助,或者您想要更具体的细节,但我想你可以做你想做的。对不起我的英语,还在学习它:))

答案 2 :(得分:0)

听起来像套接字会对你想做的事情有好处。基本上,你需要在PC上运行服务器脚本/程序,并且android程序可以发送连接请求然后是一个包含字符串的数据包。

您需要在服务器上创建一个类似这样的ServerSocket,并让它在您选择的端口上进行监听。

    ServerSocket serverSocket = null;
    int port = 9876;
    try {
        serverSocket = new ServerSocket(port);
    } catch ( Exception e ) {
            System.out.printf("Could not listen on port: %d", port );
            System.exit(-1);
    }

通常会使用新线程来接受这样的连接。

new Thread(new ServerThread(serverSocket.accept())).start();

run()的{​​{1}}方法可以像这个一样简单

ServerThread

您可以在客户端(在Android设备上的情况下)使用这样的代码创建套接字。 (注意android不允许你在主线程中执行此操作,因此您必须在另一个线程中创建连接。

try {
        Scanner socketIn = new Scanner(this.clientSocket.getInputStream());
        PrintWriter socketOut = new 

        PrintWriter(this.clientSocket.getOutputStream(), true);
        while(socketIn.hasNext() {
            System.out.println(socketIn.next());
        }
} catch (Exception e) {

}

由于您只是在wifi上执行此操作,而不是public void sendRequest(final String message) { Log.d("test", "log"); new Thread() { @Override public void run() { try { Socket socket = new Socket(InetAddress.getByName(HOST), PORT); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); out.println(message); } catch (Exception e) { Log.d("Exception in thread", e.getStackTrace()+""); } } }.start(); } ,因此您只需输入PC的本地IP地址即可。此外,如果您一直在计划这项工作,而不仅仅是学习和练习,最好在您的网络上使用静态本地IP设置PC。在那里有很多关于在不同操作系统上执行此操作的教程。

幸运的是,java中的套接字编程非常简单。您可以使用InetAddress.getByName(HOST)Scanner来读取和写入套接字。

请注意,我没有测试过上面的代码,但原理是合理的。

以下是一些包含一些信息的网站。

  1. http://cs.lmu.edu/~ray/notes/javanetexamples/
  2. http://docs.oracle.com/javase/tutorial/networking/sockets/ 我喜欢这个
  3. 编辑。我只能发布两个链接,因为我的代表很低。