2016-12-15 87 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,你能告诉我我需要改变什么吗? –