2011-06-24 4 views
0

ソケットなどを使用してサーバーツールとクライアントツールを使用してアプリケーションを作成しました。今、私はHimachiソフトウェアをインストールしました。私はアプリケーションでこのソフトウェアを使用する必要があります。これにより、ユーザーが私に接続すると、作成されたアプリケーションをこのネットワークで使用できるようになります。ソケットを使用しているのは初めてのことです。問題彼らはお互いに接続されていないということであり、また、それは私のIPとポートを変更することで、このエラーを与える:要求されたアドレスは、そのコンテキストにc#hamachi application

有効ではありません送信ツール

public Send(string Group, string port, string ttl, string rep, string data) 
{ 
IPAddress ip; 
try 
     { 
      Console.WriteLine("Send on Group: {0} Port: {1} TTL: {2}", Group,port,ttl); 

      ip = IPAddress.Parse(Group); 

      Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 

      s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip)); 

      s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, int.Parse(ttl)); 

      IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(Group),int.Parse(port)); 

      Console.WriteLine("Connecting..."); 

      s.Connect(ipep); 

      byte[] byData = System.Text.Encoding.ASCII.GetBytes(data); 
      s.Send(byData, SocketFlags.None); 

      Console.WriteLine("Closing Connection..."); 
      s.Close(); 
     } 
     catch(System.Exception e) { Console.Error.WriteLine(e.Message); } 
    } 

受信ツール

public string RecvData(string Group, string port) 
    { 
     string str = ""; 

     Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 

     IPEndPoint ipep = new IPEndPoint(IPAddress.Any, int.Parse(port)); 
     s.Bind(ipep); 

     IPAddress ip = IPAddress.Parse(Group); 

     s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip,IPAddress.Any)); 

     // Getting the data 
     byte[] buffer = new byte[1024]; 
     int iRx = s.Receive(buffer); 

     str = System.Text.Encoding.ASCII.GetString(buffer, 0, buffer.Length); 

     // Closing a Socket 
     s.Close(); 

     return str; 
    } 

おかげ

+2

実際には何が問題ですか? –

+0

問題は、クライアントが何も受信していないということです。 – Mark

+0

VPN(ハマチ)経由で私のネットワークに参加したユーザと私のメッセージをマルチキャストするために使用するIPアドレスはわかりません。 – Mark

答えて

0

あなたの問題は、クライアントがサーバーからメッセージを正しく受信できるように、2つのアプリケーションをサーバーとクライアントに接続するためにVPN(ハマチ)を使用しようとしていることです。私は、 "要求されたアドレスはそのコンテキストでは有効ではない"というエラーは、あなたがVPNを使用しているためだと思いますが、どうしたらこの問題を解決できないのか分かりません。私が考えているのは、おそらくネットワークのIDとパスワードが必要かもしれないが、もう一度私はよくわからないということです。これは非常に興味深い質問ですので、私たちに知らせてください。

+0

はい、それは私の問題です – Mark