2016-11-23 19 views
0

ソケットを使用して2台のマシンを接続しようとしました。ソケットを使用して2台のマシンを接続する

私はマシンAでクライアントコードを置く:

import java.io.*; 
import java.net.*; 

public class MyClient { 
    public static void main(String[] args) { 
     try { 
      Socket s = new Socket("IP ADDRESS",5555); 
     // Socket s = new Socket("localhost",6669); 
      DataOutputStream dout = new DataOutputStream(s.getOutputStream()); 
      dout.writeUTF("Hello Server"); 
      dout.flush(); 
      dout.close(); 
      s.close(); 
     } catch(Exception e) { 
      System.out.println(e); 
     } 
    } 
} 

を実行し、同じネットワーク

しかし、そのが実行されていないとエラーなしでマシンBでサーバーコード

import java.io.*; 
import java.net.*; 

public class MyServer { 
    public static void main(String[] args) { 
     try { 
      ServerSocket ss = new ServerSocket(5555); 
      Socket s = ss.accept(); //establishes connection 

      DataInputStream dis = new DataInputStream(s.getInputStream()); 

      String str = (String) dis.readUTF(); 
      System.out.println("message= " + str); 

      ss.close(); 

     } catch(Exception e) { 
      System.out.println(e); 
     } 
    } 
} 

両方のマシンでまたCMDに来る。

+0

[よくある質問を読む方法について](http://stackoverflow.com/help/how-to-ask)、[最小限の完全で検証可能な例](http: /stackoverflow.com/help/mcve)。 –

+0

サーバーのIPアドレスが正しいことを確認していますか? –

+0

2台のマシンが同じネットワークに接続されていることを確認していますか? –

答えて

0

まず、 "localhost"をホスト名として使用してコードをコンパイルし、同じマシン上でクライアントとサーバーのアプリケーションを実行すると...動作します。サーバーはメッセージを受信して​​印刷します。

これからは、コードが正しいと判断し、実際の問題はネットワークと関係があります。例えば

  • ルーティングに問題がある可能性があります。
  • ファイアウォールに問題がある可能性があります。
  • 物理ネットワークまたはネットワークインターフェイスに問題がある可能性があります。

しかし、いずれもプログラミング上の問題はありません。

+0

ありがとう.. prblm..Itsファイアウォールの問題 – Qtn

関連する問題