java–Android手机上的套接字连接超时

java–Android手机上的套接字连接超时,第1张

概述我正在尝试做一些服务器/套接字编程.服务器代码在Ubuntu机器上用普通java编写.客户端代码是为我的LGThrill编写的.服务器似乎工作正常.我通过在普通java中编写一个简单的测试客户端来测试服务器,该客户端基本上使用带有“localhost”ip的try/catch块.我检查了是否可以通过手机ss

我正在尝试做一些服务器/套接字编程.服务器代码在Ubuntu机器上用普通java编写.客户端代码是为我的LG Thrill编写的.服务器似乎工作正常.我通过在普通java中编写一个简单的测试客户端来测试服务器,该客户端基本上使用带有“localhost”ip的try / catch块.我检查了是否可以通过手机ssh进入服务器机器来访问ip(是的,它是可以访问的).

我的服务器代码如下:

package org.vsector.server;import java.io.IOException;import java.net.ServerSocket;public class SceneFlowServer {    int port;    Thread running = null;    CameraHandler handler = null;    public SceneFlowServer( int port, CameraHandler handler ){        this.port = port;        this.handler = handler;    }    public voID start(){        if( handler == null ) return;        try{            running = new Thread(){                public voID run(){                    try{                        ServerSocket Listen = new ServerSocket( port );                        while( true ){                            System.out.print( "I am waiting on port " + port + "... " );                            handler.accept( Listen.accept() );                            System.out.println( "Got someone!" );                            Thread spinoff = new Thread( handler );                            spinoff.start();                        }                    }catch( IOException e ){                        System.err.println( "Could not Listen on port " + port + "!" );                        System.err.flush();                        return;                    }                }            };            running.start();            running.join();        }catch( Exception e ){            System.err.println( "Could not start thread!" );            System.err.flush();        }    }}

我的CameraHandler代码:

package org.vsector.server;import java.io.BufferedReader;import java.io.IOException;import java.io.inputStreamReader;import java.net.socket;public class CameraHandler implements Runnable {    Socket clIEnt = null;    public CameraHandler(){ }    public voID accept( Socket clIEnt ){        this.clIEnt = clIEnt;    }    @OverrIDe    public voID run() {        // Todo auto-generated method stub        BufferedReader in;        try {            in = new BufferedReader( new inputStreamReader( clIEnt.getinputStream() ));            System.out.println( in.readline() );        } catch (IOException e) {            // Todo auto-generated catch block            e.printstacktrace();        }        try {            clIEnt.close();        } catch (IOException e) {            // Todo auto-generated catch block            e.printstacktrace();        }    }}

我的客户端代码如下:

package org.vsector.clIEnt;import java.io.PrintWriter;import java.net.InetSocketAddress;import java.net.socket;import androID.app.Activity;import androID.os.Bundle;import androID.Widget.TextVIEw;public class ProcessingClIEntActivity extends Activity {    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        TextVIEw text = (TextVIEw) findVIEwByID( R.ID.textBox );        Socket sock;        try {            text.append( "\nopening and writing to socket... " );            sock = new Socket();            sock.connect( new InetSocketAddress( "some ip", 4444 ), 30000 );            PrintWriter out = new PrintWriter( sock.getoutputStream(), true );            out.println( "Hello!" );            out.close();            sock.close();            text.append( "Done!" );        } catch (Exception e) {            // Todo auto-generated catch block            e.printstacktrace();            text.append( "Error: " + e + "\n" );            text.append( e.getMessage() );        }     }}

权限已设置,但仍会导致“错误:java.net.socketTimeoutException:连接超时”.

我无法弄清楚是什么导致了它!有任何想法吗?

编辑:

没关系.网络问题.我在我的家庭网络上运行代码,一切正常.

解决方法:

老兄,尝试在它们之间添加flush():

out.println( "Hello!" );out.flush();  //add this lineout.close();

你可以快速关闭插座……

总结

以上是内存溢出为你收集整理的java – Android手机上的套接字连接超时全部内容,希望文章能够帮你解决java – Android手机上的套接字连接超时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117694.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存