• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

    java多線程的操作

    時間:2024-11-05 23:56:21 SUN認證 我要投稿

    java關于多線程的操作

      一般服務器端代碼,每次收到一個線程,一個client就會產生:

      /************************ 開始監聽 **************************/

      int port = 4311;

      ServerSocket server = null;//服務器

      Socket client = null;//客戶端

      try {

      server = new ServerSocket(port);

      } catch (IndirectionException e1) {

      System.out.println("正在監聽……");

      }

      while(true)

      {

      System.out.println("等待客戶"+i);

      i++;

      try {

      client = server.accept();//開始監聽線程,接收到client

      System.out.println("客戶地址:" + client.getInetAddress());

      } catch (IOException e1) {

      System.out.println("正在等待客戶");

      }

      }

      客戶端代碼,啟動之后便會連接服務器,得到回應之后便會形成socket連接

      Socket clientsocket = null;

      try {

      clientsocket = new Socket("localhost",4311);

      } catch (UnknownHostException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      } catch (IOException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      }

      socket的輸入和輸出一般用流來相互寫。

      in.read()和out.write(),

      in.readObject()和out.writeObject(object)。

      客戶端的一個線程里面同時new了多個ObjectOutputStream流是不允許的,其它的流可以。ObjectOutputStream有鎖機制。

      如果是一般的輸入和輸出流的話用:

      DateOutputStream out = null;

      DateInputStream in = null;

      //獲得輸入輸出流

      try {

      out=new DateOutputStream(socket.getOutputStream());

      in=new DateInputStream(socket.getInputStream());

      } catch (IOException e2) {

      // TODO Auto-generated catch block

      e2.printStackTrace();

      }

      如果是對象上的輸入和輸出的話用:

      ObjectOutputStream out = null;

      ObjectInputStream in = null;

      //獲得輸入輸出流

      try {

      out=new ObjectOutputStream(socket.getOutputStream());

      in=new ObjectInputStream(socket.getInputStream());

      } catch (IOException e2) {

      // TODO Auto-generated catch block

      e2.printStackTrace();

      }

      如果復雜之后,可以是服務器啟動之后對每個客戶端啟動一個線程與客戶端的線程進行交互。

    【java多線程的操作】相關文章:

    sun認證考試輔導:java關于多線程的部分操作07-27

    Java多線程的實現方式07-08

    java多線程面試題201710-03

    2016年java多線程面試題及答案07-02

    Java數組操作方法大全08-22

    2016年java數組操作方法大全06-19

    java操作xml的一個小例子09-06

    JAVA認證基礎知識:JSP使用數據庫操作06-10

    PHP Curl多線程原理詳解09-11

    Java與Java web的區別08-10

    日韩激情