ho3ein.3ven
دوشنبه 09 شهریور 1394, 15:49 عصر
سلام .
قصد دارم در برنامه اندرویدی یک درخواست رو از طریق سوکت به سرور ارسال کنم . سرور رو با پی اچ پی پیاده سازی میکنم .
کد های سرورم به صورت زیر هست :
<?php
ignore_user_abort(true);
set_time_limit(0);
$host = "127.0.0.1";
$port = 9898;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, $host, $port);
socket_listen($socket);
while(true){
$spawn = socket_accept($socket);
$data = socket_read($spawn, 10240) or die("Could not read input\n");
$load = file_get_contents('test.txt');
file_put_contents('./test.txt',$load.$data);
}
socket_close($socket);
?>
کد های اندروید هم به صورت زیر :
public class main extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MySyncTask asyncTask=new MySyncTask ();
asyncTask.execute(1000);
}
});
}
class MySyncTask extends AsyncTask<Integer, Integer, String>{
@Override
protected String doInBackground(Integer... params) {
Socket s;
try {
s = new Socket("127.0.0.1", 9898);
InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
BufferedReader reader = new BufferedReader(streamReader);
String advice = reader.readLine();
reader.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
protected void onPostExecute(String result) {
}
protected void onPreExecute() {
}
}
}
برنامه رو که اجرا می کنم توی سرور هیچ تغییری ایجاد نمیشه . سرور هم توی مرورگر در حال اجراست . درخواست رو به راحتی از طریق php می تونم به سرور بفرستم ولی از اندروید نه . کسی از دوستان می دونه مشکل کار من کجاست ؟
قصد دارم در برنامه اندرویدی یک درخواست رو از طریق سوکت به سرور ارسال کنم . سرور رو با پی اچ پی پیاده سازی میکنم .
کد های سرورم به صورت زیر هست :
<?php
ignore_user_abort(true);
set_time_limit(0);
$host = "127.0.0.1";
$port = 9898;
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($socket, $host, $port);
socket_listen($socket);
while(true){
$spawn = socket_accept($socket);
$data = socket_read($spawn, 10240) or die("Could not read input\n");
$load = file_get_contents('test.txt');
file_put_contents('./test.txt',$load.$data);
}
socket_close($socket);
?>
کد های اندروید هم به صورت زیر :
public class main extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MySyncTask asyncTask=new MySyncTask ();
asyncTask.execute(1000);
}
});
}
class MySyncTask extends AsyncTask<Integer, Integer, String>{
@Override
protected String doInBackground(Integer... params) {
Socket s;
try {
s = new Socket("127.0.0.1", 9898);
InputStreamReader streamReader = new InputStreamReader(s.getInputStream());
BufferedReader reader = new BufferedReader(streamReader);
String advice = reader.readLine();
reader.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
protected void onPostExecute(String result) {
}
protected void onPreExecute() {
}
}
}
برنامه رو که اجرا می کنم توی سرور هیچ تغییری ایجاد نمیشه . سرور هم توی مرورگر در حال اجراست . درخواست رو به راحتی از طریق php می تونم به سرور بفرستم ولی از اندروید نه . کسی از دوستان می دونه مشکل کار من کجاست ؟