2011-07-02 5 views
0

私はちょうど私の最初のサーバー/クライアントコードとその簡単なチャットプログラムを書いて始めましたが、私はコードをどのように実行すべきか分かりません!サーバ/クライアントコードの実行方法は?

「Server Side」という名前の.classファイルと「clientSide」という名前の.classファイルがあり、それらは異なるプロジェクトにあるはずですか?両方とも接続するためにはどうすればいいですか?おかげで、すでに、次のコード

public void runServer() 
    { 
     try { 
      server = new ServerSocket(); 
      while(true) 
      { 
       try 
       { 
        connection = server.accept(); 
        try{ 
         output = new ObjectOutputStream(connection.getOutputStream()) ; 
         output.flush(); 
         input = new ObjectInputStream(connection.getInputStream()) ; 
         sendData(message) ; 
         do 
         { 
          try{ 
           message = (String) input.readObject() ; 
           System.out.println(message); 
          }catch(Exception e) 
          { 
           e.printStackTrace() ; 
          } 
         }while(!message.equals("end")); 
        }catch(EOFException e) 
        { 
         e.printStackTrace() ; 
        } 
       }catch(IOException e) 
       { 
        e.printStackTrace() ; 
       }   
       finally { 
        try{ 
        output.close(); 
        input.close(); 
        connection.close() ; 
        }catch(Exception e) 
        { 
         e.printStackTrace(); 
        } 
        } 
      } 
     }catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
    } 

の一部であり、ここではクライアント側だ:

public void runClient() 
    { 
      try{ 
      connect() ; 
      }catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 
      try{ 
       output = new ObjectOutputStream(client.getOutputStream()) ; 
       output.flush() ; 
       input = new ObjectInputStream(client.getInputStream()) ; 
      }catch(IOException e) 
      { 
       e.printStackTrace() ; 
      } 
      do 
      { 
       try{ 
        message = (String) input.readObject() ; 
        System.out.println(message); 
       }catch(Exception e) 
       {e.printStackTrace();} 
      }while(!message.equals("end")) ; 

    } 
    public void connect() throws UnknownHostException, IOException 
    { 
     client = new Socket(InetAddress.getByName(chatServer),12345) ; 
    } 

答えて

1

まず

Javaサーバが

次に実行するサーバーを実行しますクライアント:

Javaクライアント

しかし、私はあなたのサーバーがポート12345にクライアントをバインドされ表示されていないポート12345上のサーバーに接続しようとしますので、文の

client = new Socket(InetAddress.getByName(chatServer),12345) ; 

の場合ポートが一致しない場合、接続は確立されません。

server = new ServerSocket(12345); 

代わりに、デフォルトコンストラクタの:ポート12345にサーバーをバインドするに

はこれを試してみてください。クライアントとサーバー:

http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html

は、次の2つの異なるパッケージで2つのファイルのクライアント用サーバー1対1に、実行する必要があります。

0

は、あなたがすべて説明している非常に素晴らしいチュートリアルがあります。

関連する問題