如何在Android中打开端口?
如何在android中打开特定端口 我有一个服务器套接字,但由于端口关闭,连接被拒绝如何在Android中打开端口?,android,sockets,connection,port,Android,Sockets,Connection,Port,如何在android中打开特定端口 我有一个服务器套接字,但由于端口关闭,连接被拒绝 try { ServerSocket server = new ServerSocket(2021); Socket client = server.accept(); } catch (Exception e) { // TODO Auto-generated catch block a = false; e.printStackTrace(); } 看起来您只是缺少了一
try {
ServerSocket server = new ServerSocket(2021);
Socket client = server.accept();
} catch (Exception e) {
// TODO Auto-generated catch block
a = false;
e.printStackTrace();
}
看起来您只是缺少了一个围绕
accept()
调用的循环,因此您可以接受多个连接。大概是这样的:
ServerSocket server = new ServerSocket( port );
while ( true )
{
Socket client = server.accept();
ProcessClientRequest( client );
}
为了说明我在评论中的意思:
ServerSocket server = new ServerSocket( port );
while ( true )
{
Socket client = server.accept();
new Thread () {
final Socket _client = client;
// This stuff runs in a separate thread all by itself
public void run () {
ProcessClientRequest(_client);
}
}.start();
}
如果您仍然没有让它工作,我建议您创建一个内部类来扩展Thread,以替换整个
新Thread(){
..}.start()
语句(当我试图声明一个实例字段时,我总是很难让它们完全正常工作,我只是坚持在那种语句中创建/重写方法)。我会让内部类,比如ClientAnsweringThread
,有一个接受套接字的构造函数(client
)作为参数,然后在run()中调用ProcessClientRequest(_client)
方法。告诉我们到目前为止您尝试了什么,并向我们展示一些代码。此外,重复同样的问题在这里被认为是不好的。可能应用程序必须具有INTERNET权限。检查它。并将其接受到单独的线程中,以便它可以异步执行其工作,而不是一次一个。唉……不必这样做线程。只支付你需要的。