السلام عليكم
الخطأ الذي يواجهني كما هو موضح java.net.ConnectException: Connection timed out: connect
حيث أن طبيعة البرنامج يتصل بسيرفر أكثر من مره "loop" وفي كل مره يعطي نتيجه .. ولكني أحياناً أواجه هذا الخطأ
السلام عليكم
الخطأ الذي يواجهني كما هو موضح java.net.ConnectException: Connection timed out: connect
حيث أن طبيعة البرنامج يتصل بسيرفر أكثر من مره "loop" وفي كل مره يعطي نتيجه .. ولكني أحياناً أواجه هذا الخطأ
java.net.ConnectException: Connection refused: connect خطأ آخر
هل بحثت هن هذا الخطأ في الانترنت
ابدأ بجوجل وشاهد النتائج
إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ
رسم المخططات البيانية بواسطة الجافا
كتاب تحليل وتصميم نظم المعلومات
أنت مستخدم ال RMI (Remote Method Invocation)
java123 كتب:java.net.ConnectException: Connection refused: connect خطأ آخر
هذا الاكسيبشن له عدة اسباب
1- احتمال ان يكون جهازك او السيرفر او الاثنين معا غير متصلين بشيكة الانترنت
2- السيرفر لا يعمل حاول تعمل PING للتاكد من ذلك
3- جدار الحماية عندك بيمنع الاتصال
نعم اخي بحثت ولم اجد الحلvector_ever كتب:هل بحثت هن هذا الخطأ في الانترنت
ابدأ بجوجل وشاهد النتائج
لاJmoh كتب:أنت مستخدم ال RMI (Remote Method Invocation)
Jmoh كتب:هذا الاكسيبشن له عدة اسباب
1- احتمال ان يكون جهازك او السيرفر او الاثنين معا غير متصلين بشيكة الانترنت
2- السيرفر لا يعمل حاول تعمل PING للتاكد من ذلك
3- جدار الحماية عندك بيمنع الاتصال
الجهاز والسيرفر متصلين بالانترنت ، السيرفر يعمل ، لايوجد غبار على جدار الحمايه
النتائج تظهر بالبرنامج ولكنه يتوقف فجأه بهذا الخطأ
بمعنى انه يتصل بدون اي مشاكل وفجأه بالloop رقم ٨٠٠(مثلاً) يتوقف وبهذا الخطأ
وبالاتصال من شبكه اضعف يتوقف قبل الloop رقم ١٠٠
اعتقدت ان المشكله من الtimeout بمعنى انه يحاول الاتصال بالسيرفر بمقدار ١٠٠ ms مثلاً ، وفي حال اكتمال الوقت ولم يستطع الاتصال يظهر الخطأ
.. سأرفق صوره مع مثال على الكود حالما اصل الى البيت
import java.io.*;
import java.net.*;
public class s101 {
private static String startTag = "<title>";
private static String endTag = "</title>";
private static int startTagLength = startTag.length();
public static void main(String args[]) throws IOException {
BufferedReader bufReader;
boolean foundStartTag = false;
boolean foundEndTag = false;
int startIndex, endIndex;
int newCounter = 0;
String title;
String line;
URL theURL;
int A1[] = new int[] { 1, 10000 };
try {
// ------
for (int i = A1[0]; i < A1[1]; i++) {
foundStartTag = false;
foundEndTag = false;
title = "";
line = "";
newCounter = i;
theURL = new URL("http://www.google.com?ID=" + newCounter);
// -------------------DIFF1---------------------------
bufReader = new BufferedReader(new InputStreamReader(
theURL.openStream()));
while ((line = bufReader.readLine()) != null && !foundEndTag) {
if (!foundStartTag
&& (startIndex = line.toLowerCase().indexOf(
startTag)) != -1) {
foundStartTag = true;
} else {
startIndex = -startTagLength;
}
if (foundStartTag
&& (endIndex = line.toLowerCase().indexOf(endTag)) != -1) {
foundEndTag = true;
} else {
endIndex = line.length();
}
if (foundStartTag || foundEndTag) {
title += line.substring(startIndex + startTagLength,
endIndex);
}
}
// -------------------DIFF1---------------------------
bufReader.close();
if (title.length() > 0) {
System.out.println("Title: " + title);
} else {
System.out.println("N: " + newCounter);
}
newCounter++;
}
} catch (IOException e) {
System.out.println("Error: " + e);
}
}
}
أتمنى الافاده
وكما ذكرت سابقاً يعتمد على سرعة الانترنت .. بمعنى كل ماكان أسرع كل ما تأخر الخطأ