2017-07-26 1 views
1

私はこれら2つのクラスをクライアント用とサーバー用の2つのクラスに分けて記述しました。両方を実行すると、次のエラーが表示されます。JAVA:java.net.BindException:既に使用中のアドレス:JVM_Bind

java.net.BindException: Address already in use: JVM_Bind... 

問題は何ですか?また、私はTCPviewソフトウェアを使用し、同じポートを使用する2つのjava.exeしかありませんでした。これらの2つのjava.exeプロセスはアプリに属します。ここで

コードです:

Serverコード

/** 
* 
* @author casinoroyal 
*/ 
public class server { 
    public static ServerSocket socket1; 
    public static void main(String[] args) { 
     try { 
      socket1 = new ServerSocket(1254); 
      String request=""; 
      Socket mylink=socket1.accept(); 
      System.out.println("server feels====="); 
      DataInputStream input= new DataInputStream(mylink.getInputStream()); 
      DataOutputStream output=new DataOutputStream(mylink.getOutputStream()); 
      Scanner chat=new Scanner(System.in); 

      while(!request.equals("QUIT")){ 
       request=input.readUTF(); 
       output.writeUTF(chat.next()); 
      } 

      socket1.close(); 
     } catch (IOException ex) { 
      System.out.println(ex); 
     } 
    } 
} 

クライアントコード

package javaapplication9; 
import java.net.*; 
import java.io.*; 
import java.util.*; 
public class client { 
    //main 
    public static void main(String[] args) { 
     System.out.println("client want to be connected"); 
     try { 
      Socket mysock = new Socket(InetAddress.getLocalHost(),1254);    
      System.out.println("client has been connected"); 
      DataInputStream input = new DataInputStream(mysock.getInputStream()); 
      DataOutputStream output = new DataOutputStream(mysock.getOutputStream()); 
      String reque=""; 
      Scanner scan1=new Scanner(System.in); 
      String sendmsg=scan1.next(); 

      while(!reque.equals("QUIT")){ 
       output.writeUTF (sendmsg); 
       reque=input.readUTF(); 
      } 

      mysock.close(); 
     } catch (IOException ex) { 
      System.out.println("client rejected"+ex); 
     } 
    } 
} 
+0

可能性の高いポートでもバインドしようとしたサーバーアプリケーションを実行しようとしました理由は、2つのサーバーが稼働していることが考えられます。必要であれば、tcpview自体を使用して、両方のjava.exeインスタンスを閉じます。最初に実行していたサーバーとクライアントを再試行します。 – Dota2

答えて

-1

What is the problem? Also I use TCPview software and there were just two java.exe that use the same port. These two java.exe processes belong to the apps.

ここにあなたの問題があります。

コンピュータの同じポートに2つのソケットをバインドしようとしましたが、同じコンピュータの同じポートに2つのソケットをバインドすることはできません。

あなたはポート1254(サーバーアプリのおそらくインスタンス)で待機している既存のプロセスを持っていたので、それはおそらくだ、とあなたは1254

+0

"同じコンピュータの同じポートに2つのソケットをバインドすることはできません。"実際には、すべてが異なるIPアドレスにバインドされている限り、それらのどれもが0.0.0.0ではありません。 – EJP

+0

あなたの権利は..(クライアントコードを実行せずに)サーバーコードを実行すると同じポートで実行される2つのjava.exeが表示されます...何ができるのですか? TCPの両方のjava.exeが殺されています...何ができますか? –

+0

このコードの修正はありますか? –

関連する問題