@Override
public void run() {
tcpConnections = new ArrayList<>();
try {
ss = new ServerSocket(port);
Log.d("Listening","Listening on port : " + ss.getLocalPort());
while (true) {
Log.d("Listening","Waiting for Client");
socket = ss.accept();
if (socket.isConnected())
{
Log.d("SocketAccept", "client connected from: %s" + socket.getRemoteSocketAddress().toString());
TCPConnection tcpConnection = new TCPConnection(socket); // is it right way to start further steps of listening for incoming connections?
tcpConnections.add(tcpConnection);
tcpConnection.run();
}
else {
StopConnections();
break;
}
}
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (IOException e) {
Log.d("Socket","socket is closed");
}
}
прослушивает соединения, принимает соединение, если согласие прошло успешно, соединение добавляется в список tcpConnections и запускает TCPConnection для дальнейшего прослушивания.Может ли кто-нибудь показать мне знать, может поставить все с помощью AsyncTask?
Так я звоню из MainActivity
btn_Conn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
TCPServer connection = new TCPServer(7123);
new Thread(connection).start();