here\'s my full code: the cnx is established , and i am sending data to server , but i cant read anything from the server...
public class client extends Acti
package some;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class NetClient {
/**
* Maximum size of buffer
*/
public static final int BUFFER_SIZE = 2048;
private Socket socket = null;
private PrintWriter out = null;
private BufferedReader in = null;
private String host = null;
private String macAddress = null;
private int port = 7999;
/**
* Constructor with Host, Port and MAC Address
* @param host
* @param port
* @param macAddress
*/
public NetClient(String host, int port, String macAddress) {
this.host = host;
this.port = port;
this.macAddress = macAddress;
}
private void connectWithServer() {
try {
if (socket == null) {
socket = new Socket(this.host, this.port);
out = new PrintWriter(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void disConnectWithServer() {
if (socket != null) {
if (socket.isConnected()) {
try {
in.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void sendDataWithString(String message) {
if (message != null) {
connectWithServer();
out.write(message);
out.flush();
}
}
public String receiveDataFromServer() {
try {
String message = "";
int charsRead = 0;
char[] buffer = new char[BUFFER_SIZE];
while ((charsRead = in.read(buffer)) != -1) {
message += new String(buffer).substring(0, charsRead);
}
disConnectWithServer(); // disconnect server
return message;
} catch (IOException e) {
return "Error receiving response: " + e.getMessage();
}
}
}
//---------------------------Use NetClient------------------------------------------------
NetClient nc = new NetClient(host, port, mac); //mac address maybe not for you
nc.sendDataWithString("your data");
String r = nc.receiveDataFromServer();
This is our android socket client works fine with Python server socket, Hope it will help you.
HttpResponse response = m_httpClient.execute( request );
String result = "";
if( response.getStatusLine().getStatusCode() == HttpStatus.SC_OK )
{
// open stream
InputStream stream = response.getEntity().getContent();
if( stream != null )
{
int len = 0;
byte[] buf = new byte[ 1024 ];
try
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
while( ( len = stream.read( buf ) ) > 0 )
{
outputStream.write( buf, 0, len );
}
buf = outputStream.toByteArray();
result = EncodingUtils.getAsciiString( buf );
}
catch( IOException e )
{
e.printStackTrace();
}
finally
{
stream.close();
}
}