آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در استفاده از httpurlconnection در بازی آنلاین

aminaryan  10 سال پیش  10 سال پیش
0 0

با سلام. من دارم ی بازیی میسازم که آنلاینه. یعنی دو نفر همزمان با هم بازی میکنن. حالا ی مشکلی دارم. وقتی کاربر 1 منتظر اینه که کاربر دو بازی کنه، چجوری سریع میفهمه که کاربر دو بازی کرده و حالا نوبت اونه؟ خودم یجوری نوشتم ولی ی مشکلی داره، هر ثانیه چک میکنه که کاربر دو بازی کرده یا نه که در این صورت main thread قفل میشه. حالا پیشنهادات شما چیه؟ ممنون میشم کمک کنید. 

این کد webservice من هست:

 public static String php(final String u, final String urlParameters) {
    final StringBuffer response = new StringBuffer();

final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
final String USER_AGENT = "Mozilla/5.0";

URL obj = null;
try {
obj = new URL(u);
} catch (MalformedURLException e) {
e.printStackTrace();
}
HttpURLConnection con = null;
try {
con = (HttpURLConnection) obj.openConnection();
} catch (IOException e) {
e.printStackTrace();
}

//add reuqest header
try {
con.setRequestMethod("POST");
} catch (ProtocolException e) {
e.printStackTrace();
}
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

// Send post request
con.setDoOutput(true);
DataOutputStream wr = null;
try {
wr = new DataOutputStream(con.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
try {
wr.writeBytes(urlParameters);
} catch (IOException e) {
e.printStackTrace();
}
try {
wr.flush();
} catch (IOException e) {
e.printStackTrace();
}
try {
wr.close();
} catch (IOException e) {
e.printStackTrace();
}

BufferedReader in = null;
try {
in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
String inputLine;

try {
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();
int a = 0;
while (!(a == 1)) {
if (!(thread.isAlive())) {
a = 1;
}
}
return response.toString();
}

با تشکر.

 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .