I am developing an app that connects to a java server through a TCP socket. For some reason the client/app keeps getting stuck at the //HERE.
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
import android.util.Log;
class ClientConnectToServer
{Socket clientSocket;
public ClientConnectToServer()
{ try {
clientSocket = new Socket("10.0.2.2", 9000);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String sendMessage(String message)
{
try{ clientSocket = new Socket("10.0.2.2", 9000);
String modifiedSentence;
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
outToServer.writeBytes(message + '\n');
modifiedSentence = inFromServer.readLine();
outToServer.close();
inFromServer.close();
//HERE
clientSocket.close();
Log.v(modifiedSentence, modifiedSentence);
return modifiedSentence;}
catch(Exception e)
{
return "";}
}
}
Thanks for any help.
Not possible. At that point the socket is already closed due to both prior closes, so there is nothing for that line of code to do. More likely you are blocked at the logging line for some reason.
When closing a socket you should close the output stream or writer you have wrapped around its out stream. That flushes it and closes the input stream and the socket. Don’t close anything else.