2016-12-15 85 views
-4

我創建了一個移動運營商,它將號碼發送到服務器,,我添加了一個線程,但它始終顯示我0,我需要做什麼來增加我的線程,以便像>第一次>線程 - 0,第二次> THread-1等等。就像在IMG IMG 我的代碼:如何在java中實現線程

package PPC4; 
import java.io.*; 
import java.net.InetAddress; 
import java.net.Socket; 
import java.util.Random; 
public class Client extends Thread { 
    Client() { 
     // The compiler creates the byte code equivalent of super(); 
    } 
    Client(String name) { 
     super (name); // Pass name to Thread superclass 
    } 
    public static Socket socket; 

    public void run() { 
     Random randomGenerator = new Random(); 
     String host = "localhost"; 
     int port = 25000; 
     try {    
      InetAddress address = InetAddress.getByName(host); 
      socket = new Socket(address, port); 
      //Send the message to the server 

      OutputStream os = socket.getOutputStream(); 
      OutputStreamWriter osw = new OutputStreamWriter(os); 
      BufferedWriter bw = new BufferedWriter(osw); 

      int randomInt = randomGenerator.nextInt(999999); 
      String number = "069"+randomInt; 
      String sendMessage = (number+1) + "\n"; 
      bw.write(sendMessage); 
      bw.flush(); 
      System.out.println("The telephone number sent to the server: "+sendMessage); 

      System.out.println ("The following user connected : " + getName()); 
      //Get the return message from the server 
      InputStream is = socket.getInputStream(); 
      InputStreamReader isr = new InputStreamReader(is); 
      BufferedReader br = new BufferedReader(isr); 
      String message = br.readLine(); 
      System.out.print(" " +message); 
     } catch(Exception exception) { 
      exception.printStackTrace(); 
     } 
    } 

    public static void main(String args[]) { 
     { 
      Client mt; 
      if (args.length == 0) 
       mt = new Client(); 
      else 
       mt = new Client(args[0]); 
      mt.start(); 
     } 
    } 
} 

回答

1

當你不傳遞任何參數你的代碼,它會默認創建一個名爲線程0線程。如果您至少傳遞一個參數,它將創建名稱與該參數相同的線程。

+0

我需要通過那個參數在哪裏?,我不明白:( –

+0

@JohnCoffey在你的主要方法,if語句中看到的代碼?那mt = new Client(args [0]);意思是什麼在程序啓動時作爲參數傳遞,它將被傳遞給客戶端的構造函數,並在客戶端的構造函數中設置線程的名字 –

+0

對不起Ivan,你能告訴我我需要改變什麼嗎? –