ورود

View Full Version : مشکل در استفاده از TCP Socket



Mask
دوشنبه 27 مهر 1394, 18:16 عصر
سلام دوستان.
با استفاده از کد زیر به راحتی بوسیله Tcp مقداری رو ارسال میکنم.

public class Client extends Activity {

private Socket socket;


private static final int SERVERPORT = 5050;
private static final String SERVER_IP = "192.168.1.10";


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

new Thread(new ClientThread()).start();
}

public void onClick(View view) {
try {
EditText et = (EditText) findViewById(R.id.EditText01);
String str = et.getText().toString();
str.getBytes("UTF-8");
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}


class ClientThread implements Runnable {


@Override
public void run() {

try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);


socket = new Socket(serverAddr, SERVERPORT);


} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}


}


}
}
مشکلم اینجاست که سرور استرینگ مورد نظر رو میگیره و درجوابش مقداری رو بر میگردونه، اما هر کاری کردم مقدار بازگشتی از سرور بر روی همون سوکت رو نتونستم دریافت کنم. حتی کد زیر رو هم نوشتم :

public class Client extends Activity {

private Socket socket;
private boolean connected = false;



private static final int SERVERPORT = 4848;
private static final String SERVER_IP = "192.168.137.1";


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

new Thread(new ClientThread()).start();
}

public void onClick(View view) {
try {


EditText et = (EditText) findViewById(R.id.EditText01);
EditText edt1 = (EditText) findViewById(R.id.edt1);

String str = et.getText().toString();
str.getBytes("UTF-8");
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);

BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String inMsg = in.readLine();// + System.getProperty("line.separator");
edt1.setText(inMsg);



} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}


class ClientThread implements Runnable {


@Override
public void run() {

try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);


socket = new Socket(serverAddr, SERVERPORT);



} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}

}


}
}
میشه دوستان بنده رو راهنمایی کنند؟
ممنون.

suraty
چهارشنبه 29 مهر 1394, 06:49 صبح
سلام،
http://cs.smith.edu/~bergmann/CSC350/Lecture6.ppt