עבור לתוכן

סיוע בכתיבת תוכנה קטנה שתרוץ ברקע 24\ 7 JAVA

Featured Replies

פורסם

יש לי חבר שהמחשב בחדר שלו קצת רחוק מהראוטר האלחוטי , הגלישה בסדר גמור אבל כל 10 דקות מתנתק האינטרנט וצריך לעשות REPAIR [ תקן ]

לאשף של האלחוטי של ווינדוס .

כלומר יש למטה סימן של המתאם האלחוטי של ווינדוס וצריך לעשות קליק ימני >> תקן \ REPAIR ואז האינטרנט מסתדר 99 אחוז מהזמן .

אולי היה עדיף איזה שפת סקריפט ואפילו אפשר היה עם קובץ BAT ויכול להיות שזה רק עינין של הגדרה בווינדוס שיעשה את זה אוטומאטי לא משנה ... :)

בא לי לצור תוכנה כזאת בשביל הקטע וללמוד משהו מעבר לקורס המבוא שלמדתי באו"פ עם JAVA

אני ממש לא מתכנת דגול אבל נראה לי צריך קודם לחשוב על אלגורתים כלשהו ואז לממש את זה על ידי חיפוש בגוגל איך לממש את זה .

חשבתי על דבר כזה ..ללולאה אין סופית כל 20 שניות שלח פינג לגוגל (האתר הכי יציב נראה לי אם אתם מציעים אתר אחר תגידו )

אם הפינג נכשל >>>>>RAPAIR למתאם האלחוטי

מה אתם חושבים ?

פורסם

תתפס לפקודת הקונסול ipconfig /release

ipconfig /renew

פורסם

למה לעבוד עקום? לא עדיף פשוט לתת IP סטטי למחשב?

פורסם
  • מחבר

זליג ברור לי שהדרך שלי ממש לא מקצועית כמו שאמרתי אני רוצה גם ללמוד משהו מעבר לפתרון הבעיה

בפעם הבאה שאני יהיה אצלו אני אנסה לתת IP סטטי ואראה אם זה פותר את הבעיה .

בכל מקרה היום בשעות הלילה (אני קצת עסוק עכשיו ) אני אחקור קצת איך לעשות פינג בג'אווה ואנסה לכתוב קוד ראשון

הערות והארות יתקבלו בברכה :xyxthumbs:

פורסם
  • מחבר

  public class A {
public static void main ( String args[] ) {
try {
InetAddress thisIp =
InetAddress.getLocalHost();
System.out.println("IP:"+thisIp.getHostAddress());
}
catch(Exception e) {
e.printStackTrace();
}


}

}

זה מחזיר IP ..קראתי איפהשהו שככה בודקים אם יש רשת ...ניסיתי פה אצלי ...אם יש רשת אז ה IP

192.168.1.102

אם אין רשת אז אני מקבל 127.0.0.1

אז אם אני מקבל 127 וכולי אז בבודאות אין חיבור לרשת ? או שזה לא מחייב ?

עריכה :

/**
*
* @author Owner
*/
public class A {
public static void main ( String args[] ) {
int status = 0 ;

while ( status == 0 ) {
try
{
Thread.sleep(4000);

}catch (InterruptedException ie){}

try {

InetAddress thisIp =
InetAddress.getLocalHost();
String ip = thisIp.getHostAddress();
System.out.println("IP:"+ ip );
if (ip.equals("127.0.0.1") ) {
Process process = Runtime.getRuntime().exec(new String[]{"ipconfig", "/release"});
Process procesS = Runtime.getRuntime().exec(new String[]{"ipconfig", "/renew"});
}

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


}
}
}

כל כמה שניות מדפיס את ה IP ויש לי אפשרות לבצע משהו אם הכתובת היא 127.0.01

אז ניסיתי אתה RELEASE RENEW אבל זה לא עושה את זה למה ?

  • 2 שבועות מאוחר יותר...
פורסם
  • מחבר

עדכון :)

package releaserenew;

import java.io.IOException;
import java.net.InetAddress;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Owner
*/
public class A {
public static void main ( String args[] ) {
int status = 0 ;

while ( status == 0 ) {
try
{
Thread.sleep(4000);

}catch (InterruptedException ie){}

try {

InetAddress thisIp =
InetAddress.getLocalHost();
String ip = thisIp.getHostAddress();
System.out.println("IP:"+ ip );
if (ip.equals("127.0.0.1") ) {

Runtime rt = Runtime.getRuntime();



Process p = rt.exec("cmd.exe", "ipconfig /release");
status = 10 ;
}

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


}
}
}

התוכנה הזאת הוכחה שמזהה מיידית ניתוק רשת ואז יש לי אפשרות לבצע משהו וגם אחרי המשהו הזה ממשיכה "להשגיח על החיבור " תריצו זה נחמד ...:)

אני מנסה אבל מקבל שגיאה

java.lang.RuntimeException: Uncompilable source code

at releaserenew.A.main(A.java:40)

ובשורה 40

Process p = rt.exec("cmd.exe", "ipconfig /release

תראו בקוד העליון

עריכה:

package releaserenew;

import java.io.IOException;
import java.net.InetAddress;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Owner
*/
public class A {
public static void main ( String args[] ) {
int status = 0 ;

while ( status == 0 ) {
try
{
Thread.sleep(4000);

}catch (InterruptedException ie){}

try {

InetAddress thisIp =
InetAddress.getLocalHost();
String ip = thisIp.getHostAddress();
System.out.println("IP:"+ ip );
if (ip.equals("127.0.0.1") ) {

Runtime rt = Runtime.getRuntime();



Runtime.getRuntime().exec("cmd /c start 1.bat");
try
{
Thread.sleep(7000);

}catch (InterruptedException ie){}

}

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


}
}
}

עשיתי בסוף את ה RELEASE\RENEW עם BAT כזה בדיוק

ipconfig /release

ipconfig /renew

נראה איך זה יעבוד אצלו אם הכל בסדר אנסה לעשות ישירות את הפקודות האלה ללא BAT יש איזה מאמר נחמד על זה אין לי זמן לזה עכשיו

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים