Я застрял в этой проблеме. Я не могу получить даже PIN-сообщение с сервера, и отправка данных на сервер не работает для меня. Однако всякий раз, когда я проверяю socket.isConnected (), он возвращает true. Как я могу исправить эту проблему? Вот мой код для клиентской стороны.
public class Socks {
private Socket sockets;
private OutputStream socketOutput;
private BufferedReader socketInput;
private String ip;
private int port;
private SocksCallback listener=null;
public Socks(String ip, int port){
this.ip=ip;
this.port=port;
Log.d("GEGE","GEGEGEGE");
connect();
}
public void connect(){
Log.i("SOCKET","Trying to connect...");
new Thread(new Runnable() {
@Override
public void run() {
sockets = new Socket();
InetSocketAddress socketAddress = new InetSocketAddress(ip, port);
try {
sockets.connect(socketAddress);
if(sockets.isConnected()){
Log.i("SOCKET","Connected");
}
socketOutput = sockets.getOutputStream();
socketInput = new BufferedReader(new InputStreamReader(sockets.getInputStream()));
new ReceiveThread().start();
if(listener!=null)
listener.onConnect(sockets);
} catch (IOException e) {
if(listener!=null)
listener.onConnectError(sockets, e.getMessage());
}
}
}).start();
}
public void disconnect(){
try {
sockets.close();
} catch (IOException e) {
if(listener!=null)
// Log.i("SEND_ON_ERROR",e.getMessage());
listener.onDisconnect(sockets, e.getMessage());
}
}
public void send(String message){
try {
Log.i("SEND_ON_SOCKET",message);
socketOutput.write(message.getBytes());
} catch (IOException e) {
if(listener!=null)
listener.onDisconnect(sockets, e.getMessage());
}
}
private class ReceiveThread extends Thread implements Runnable{
public void run(){
String message;
try {
Log.i("THREAD","WIW");
while((message = socketInput.readLine()) != null) { // each line must end with a \n to be received
Log.d("MSG",message);
if(listener!=null)
listener.onMessage(message);
}
} catch (IOException e) {
if(listener!=null)
listener.onDisconnect(sockets, e.getMessage());
}
}
}
public void setClientCallback(ClientCallback listener){
this.listener=listener;
}
public void removeClientCallback(){
this.listener=null;
}
public interface SocksCallback {
void onMessage(String message);
void onConnect(Socket sockets);
void onDisconnect(Socket sockets, String message);
void onConnectError(Socket sockets, String message);
}
}
Кто-нибудь, кто получил эту проблему и решил ее? Даже ваши идеи будут отличной помощью