Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android中的客户机服务器_Java_Android_Client Server - Fatal编程技术网

Java android中的客户机服务器

Java android中的客户机服务器,java,android,client-server,Java,Android,Client Server,几天来,我一直在尝试创建一个应用程序客户端服务器,两者都在android上,运行在同一台机器上。。。。 我使用了各种各样的显示功能来显示客户端和服务器的状态……经过努力,我成功地将两者连接起来,这并不难做到 我面临的一个大问题是如何将数据从客户端发送到服务器 我使用了一个DisplayTitle()函数在服务器端显示从客户端到达的数据,但它从不显示任何内容 我认为问题在于发送数据,因为我正在使用PrintWriter发送数据,并且我已经读到我应该刷新它以便执行此操作,否则数据将仅在缓冲区已满时发

几天来,我一直在尝试创建一个应用程序客户端服务器,两者都在android上,运行在同一台机器上。。。。 我使用了各种各样的显示功能来显示客户端和服务器的状态……经过努力,我成功地将两者连接起来,这并不难做到

我面临的一个大问题是如何将数据从客户端发送到服务器

我使用了一个
DisplayTitle()
函数在服务器端显示从客户端到达的数据,但它从不显示任何内容

我认为问题在于发送数据,因为我正在使用PrintWriter发送数据,并且我已经读到我应该刷新它以便执行此操作,否则数据将仅在缓冲区已满时发送…我已经完成了,但仍然没有任何内容

这是我的客户代码:



这是我的服务器,在
DisplayTitle()
中,我尝试显示我应该从客户端接收的纬度和经度:

public class Server1 extends Activity {


    //the ip the server is listening to


    public static String SERVERIP="10.0.2.15";


    Socket client;

    Scanner s=null;

    TextView serverStatus;

    Handler handler=new Handler();

    protected int  ServerPort= 6000;

    int longitude;
    int latitude;

    protected boolean      isStopped    = false;
    private  ServerSocket serverSocket=null;
    private Socket clientSocket=null;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.server1);

        Button b = (Button)findViewById(R.id.mainMenu);

        serverStatus =(TextView)findViewById(R.id.server_Status);

        b.setOnClickListener(new View.OnClickListener() {
          public void onClick(View arg0){Intent i = new Intent(Server1.this, Server2.class);
           startActivity(i);}});
        Thread fst=new Thread(new ServerThread());
        fst.start();
       // MultiThreadedServer server = new MultiThreadedServer(6000);
      // new Thread(server).start();

    }


public class ServerThread implements Runnable{

    public void run(){

        try{
            InetSocketAddress serverAddr =new InetSocketAddress(SERVERIP,6000);
    serverSocket = new  ServerSocket();
    serverSocket.bind(serverAddr);

        handler.post(new Runnable(){public void run() {
            serverStatus.setText("wait for clients");
        }});


        while(true){
        //accept for incoming clients
        client= serverSocket.accept();
        handler.post(new Runnable(){public void run() {
            serverStatus.setText("Connected.");
        }});

        try{

            s=new Scanner(new BufferedReader(new InputStreamReader(client.getInputStream())));


            while(s.hasNext()){
                longitude=Integer.parseInt(s.next());
                System.out.println(longitude);
                latitude=Integer.parseInt(s.next());
                System.out.println(latitude);
            // db.insertData2(longitude,latitude);



                      handler.post(new Runnable() {

                            public void run() {
                               DisplayTitle(longitude,latitude);

                            }
                            }); 
                   }

            break;

        }
        catch(Exception e)
        {
            handler.post(new Runnable(){
                public void run(){
                    serverStatus.setText("Connection interrupted!!");
                }

            });
            e.printStackTrace();
        }



}
        }
catch(Exception e)

        {
         handler.post(new Runnable()
         {
             public void run(){
                 serverStatus.setText("Error");
             }
         });

         e.printStackTrace();

        }
    }
}


public void DisplayTitle(int longitude,int latitude)

{
 Toast.makeText(this, 
         "longitude: " + longitude +"\n" +

         "latitude: " + latitude +"\n" ,

         Toast.LENGTH_LONG).show();        
} 

}


如果有人知道我做错了什么,请告诉我!我在这里了解更多详细信息。

如果您只是想查看在客户端或服务器中发送的数据,使用调试输出显示您正在接收数据有什么错?您可以使用logcat进行此操作。接收或发送数据时,只需将数据打印到logcat即可

Log.d(string, string);

相信我,我已经用过了所有的东西…其他地方是问题所在…我不知道在哪里!!!即使我使用log()或System.out.println(),它也不会在logcat中显示任何内容……谢谢!哦,等等,我知道你现在在哪里把结果打印到屏幕上了。我错过了你的系统。我将再次更仔细地研究这一点。我以为你根本没有打印出来,想知道你怎么能看到你实际上收到了数据。我想我误解了这个问题。哈哈,谢谢!当我有机会的时候,我会进一步研究这个问题。我将不得不等到我回家(目前正在工作)。也许有人会在那之前回答,但如果没有。我应该可以在这里帮助您。好的……我等一下,反正我没什么可做的:)……谢谢,非常感谢:)您是否使用远程登录会话中的控制台重定向了端口,例如redir add tcp:xxxx:yyyy?如果没有,那么这就是你的问题。看看我对一个类似问题的回答,它应该会有帮助是的是的……我已经这样做了……我成功地将它们连接起来……问题是发送数据:)我知道那篇帖子……我已经做了里面的所有事情或任何其他来自互联网的帖子:)))…Thx
Log.d(string, string);