2012-03-24 3 views
0

を使用してアプリケーションを送信するSMSの開発します関数の2つのスレッドを入れて、関数Send_Smsの実行が送信を開始するように制御できるようにするlogin()の後のSMSは正常に完了していないと、プログラムは動作しません。は、私はクラスの2つの機能を持ったJava Swingの

これは私がこれまでにやっていることです:

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.Writer; 
import java.util.logging.Level; 
import java.util.logging.Logger; 


public class RunThreads extends Thread 
{ 
    public void Login(String username,String password) 
    { 
     try 
     { 
      // creates the batch file for Logging into abc.com server 
      Writer output = null; 
      String UserAgent = "Mozilla/5.0 (Windows NT 5.1;KM:10.0.2)"; 
      String postdata = "\"" + "username="+username+ "&password=" + password + "&button=Login" + "\""; 
      String MainStream = "c:\\wget.exe --output-document=login.html --user-agent=" + "\"" + UserAgent + "\"" + " --max-redirect=10 --cookies=on --keep-session-cookies --save-cookies=cookie.txt --post-data " + postdata + " http://www.abc.com/Login1.action;"; 
      File file = new File("login.bat"); 
      output = new BufferedWriter(new FileWriter(file)); 
      output.write(MainStream); 
      output.close(); 
      Runtime.getRuntime().exec("cmd /c start login.bat"); 
     } 
     catch (IOException ex) 
     { 
      Logger.getLogger(Save_Credentials.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
    public void SendSms(String mobno,String content) throws IOException 
    { 
       Writer output = null; 
       String UserAgent = "Mozilla/5.0 (Windows NT 5.1;KM:10.0.2)"; 
       String MainStream = "c:\\wget.exe --output-document=quicksms.html --user-agent=" + "\"" + UserAgent + "\"" + " --referer=http://www.abc.com/jsp/SMS.jsp --cookies=on --keep-session-cookies --load-cookies=cookie.txt --save-cookies=cookie.txt --post-data "+"\""+"&HiddenAction=instantsms&catnamedis=Birthday&Action=gstahsbdf5346g&chkall=on&MobNo="+mobno+"&textArea="+content+"\""+" http://www.abc.com/quicksms.action;"; 
       File file = new File("SendSms.bat"); 
       output = new BufferedWriter(new FileWriter(file)); 
       output.write(MainStream); 
       output.close(); 
       Runtime.getRuntime().exec("cmd /c start SendSms.bat"); 
    } 
    public static void main(String[] args) 
    { 


    } 
} 

答えて

0

をログインに失敗した場合、あなた自身が言ったようにSMSは、送信することはできませんので:

を機能Send_Smsのexceutionが可能 login()が完了した後にsmsを送信するように制御されます。 プログラムが正常に動作しません。

これらの2つのタスクは順番に結合されます。つまり、それらを異なるスレッドで並列に実行すると意味がありません。単一のスレッド上でシーケンスでそれらを実行するだけです。

関連する問題