autodrc
28/03/16, 17:12:30
Buenas tardes,
Estoy intentando realizar una conexión servidor-cliente bidireccional con Android Studio pero no hay manera de que el cliente reciba los datos del servidor. La conexión se hace bien y puedo enviar mensajes desde el cliente al servidor y visualizarlos en el servidor sin problema, pero al contrario estoy teniendo problemas.
A ver si me podéis echar una mano!
Gracias
Este es mi código hasta el momento:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
public class SettingsActivity extends AppCompatActivity implements OnClickListener {
EditText etMessage, ipadress, ipport;
Button bSend;
TextView msgrec;
override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
etMessage = (EditText) findViewById(R.id.welcomeMsg);
bSend = (Button) findViewById(R.id.checkconnection);
ipadress = (EditText) findViewById(R.id.ipadress);
ipport = (EditText) findViewById(R.id.ipport);
msgrec = (TextView) findViewById(R.id.msgrec);
bSend.setOnClickListener(this);
}
override
public void onClick(View v) {
Thread t = new Thread() {
override
public void run() {
String dstAddress;
int dstPort;
String datoport;
String response;
String msgToServer;
try {
msgToServer = etMessage.getText().toString();
dstAddress = ipadress.getText().toString();
datoport = ipport.getText().toString();
dstPort = Integer.parseInt(datoport);
Socket socket = new Socket(dstAddress, dstPort);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(msgToServer);
socket = new Socket(dstAddress, dstPort);
DataInputStream dis = new DataInputStream(socket.getInputStream());
response = dis.readUTF();
msgrec.setText(response);
dis.close();
dos.flush();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
t.start();
}
}
Estoy intentando realizar una conexión servidor-cliente bidireccional con Android Studio pero no hay manera de que el cliente reciba los datos del servidor. La conexión se hace bien y puedo enviar mensajes desde el cliente al servidor y visualizarlos en el servidor sin problema, pero al contrario estoy teniendo problemas.
A ver si me podéis echar una mano!
Gracias
Este es mi código hasta el momento:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
public class SettingsActivity extends AppCompatActivity implements OnClickListener {
EditText etMessage, ipadress, ipport;
Button bSend;
TextView msgrec;
override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
etMessage = (EditText) findViewById(R.id.welcomeMsg);
bSend = (Button) findViewById(R.id.checkconnection);
ipadress = (EditText) findViewById(R.id.ipadress);
ipport = (EditText) findViewById(R.id.ipport);
msgrec = (TextView) findViewById(R.id.msgrec);
bSend.setOnClickListener(this);
}
override
public void onClick(View v) {
Thread t = new Thread() {
override
public void run() {
String dstAddress;
int dstPort;
String datoport;
String response;
String msgToServer;
try {
msgToServer = etMessage.getText().toString();
dstAddress = ipadress.getText().toString();
datoport = ipport.getText().toString();
dstPort = Integer.parseInt(datoport);
Socket socket = new Socket(dstAddress, dstPort);
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(msgToServer);
socket = new Socket(dstAddress, dstPort);
DataInputStream dis = new DataInputStream(socket.getInputStream());
response = dis.readUTF();
msgrec.setText(response);
dis.close();
dos.flush();
dos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
};
t.start();
}
}