如何在android中打开特定端口?
我有一个服务器套接字但由于端口已关闭而拒绝连接。
try {
ServerSocket server = new ServerSocket(2021);
Socket client = server.accept();
} catch (Exception e) {
// TODO Auto-generated catch block
a = false;
e.printStackTrace();
}
答案 0 :(得分:1)
如果你仍然没有让它工作,我建议你创建一个扩展Thread的内部类来替换整个new Thread() {
... }.start()
语句(我一直遇到麻烦)当我尝试声明一个实例字段时,让那些工作完全正确,我只是坚持在那种语句中创建/重写方法)。我会让内部类,比如说ClientAnsweringThread
,有一个构造函数,它接受Socket(client
)作为参数,然后在ProcessClientRequest(_client);
方法中调用run()
已经有。
答案 1 :(得分:0)
看起来您只是错过了accept()
调用周围的循环,因此您可以接受多个连接。像这样:
ServerSocket server = new ServerSocket( port );
while ( true )
{
Socket client = server.accept();
ProcessClientRequest( client );
}
答案 2 :(得分:0)
说明我在评论中的含义:
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();
}