ورود

View Full Version : مشکل با ارسال پکت Http به وسیله سوکت



ho3ein.3ven
چهارشنبه 07 خرداد 1393, 16:03 عصر
سلام

من یه برنامه نوشتم که یه پکتت اچ تی تی پی رو به یه سرور ارسال می کنه .

کد رو به صورت زیر نوشتم :


Socket s = new Socket(); String host = "آدرس سرور";
PrintWriter s_out = null;
BufferedReader s_in = null;


try {
s.connect(new InetSocketAddress(host , 80));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



try {

s_out = new PrintWriter( s.getOutputStream(), true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


;"String message= "GET / HTTP/1.1\r\n\r\n
s_out.println( message );

TextView tv = (TextView)findViewById(R.id.aa);

String response;
try {
while ((response = s_in.readLine()) != null)
{ tv.setText(response);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

کدی که نوشتم بهم خطا میده . کسی میدونه مشکلش کجاست ؟

rubiks.kde
پنج شنبه 08 خرداد 1393, 00:16 صبح
لطفا خطا رو بنویسد چی هست؟انشالله که از شبکه در ترد اصلی استفاده نمیکنید؟

ho3ein.3ven
پنج شنبه 08 خرداد 1393, 00:36 صبح
لطفا خطا رو بنویسد چی هست؟انشالله که از شبکه در ترد اصلی استفاده نمیکنید؟

چرا اتفاقا کدمو تو oncreate مینویسم . مگه حتما باید multi thread باشه ؟

dasssnj
پنج شنبه 08 خرداد 1393, 07:48 صبح
باید برای سوکت یه ترد جدا داشته باشید

rubiks.kde
پنج شنبه 08 خرداد 1393, 11:29 صبح
چرا اتفاقا کدمو تو oncreate مینویسم . مگه حتما باید multi thread باشه ؟

اره کلا کارهای شبکه ایی باید در ترد جدا از ترد اصلی اجرا بشه

ho3ein.3ven
جمعه 09 خرداد 1393, 10:30 صبح
با تشکر از پاسختون

من کدم رو به صورت زیر تغییر دادم ولی بازم جواب نمیده : (البته دیگه اررور نمیده)

Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Runnable r = new Runnable() {
public void run() {

Socket s = new Socket();
String host = "آدرس سرور";
PrintWriter s_out = null;
BufferedReader s_in = null;

//connect shodan ba socket
try {
s.connect(new InetSocketAddress(host , 80));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


//send data
try {

s_out = new PrintWriter( s.getOutputStream(), true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


String message; //= "GET / HTTP/1.1\r\n\r\n";

s_out.println( message );
//System.out.println("Message send");

TextView tv = (TextView)findViewById(R.id.aa);

String response;
try {
while ((response = s_in.readLine()) != null)
{ tv.setText(response);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//close the i/o streams
s_out.close();


try {
s_in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //close the socket


try {
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

};


}
});

ho3ein.3ven
دوشنبه 12 خرداد 1393, 10:08 صبح
دوستان کسی نمی تونه کمک کنه ؟