2

LAN 経由で TCP ソケットを使用してデータの送受信に成功しましたが、インターネット経由でも同じことを達成したいと考えています。何人かの友人に尋ねたところ、静的 IP を使用するというアイデアが浮かびました。その静的IPをどのように使用できるのだろうかと思っていましたか? ホストでポート設定を構成する必要があるということですか、それとも何ですか?

以下は、アイデアを提供するために使用したいサンプルコードです。

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MainClass
{
   public static void Main()
   {
      IPEndPoint ip = new IPEndPoint(IPAddress.Any,9999);
      Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);

      socket.Bind(ip);
      socket.Listen(10);
      Console.WriteLine("Waiting for a client...");
      Socket client = socket.Accept();
      IPEndPoint clientep =(IPEndPoint)client.RemoteEndPoint;
      Console.WriteLine("Connected with {0} at port {1}",clientep.Address, clientep.Port);

      string welcome = "Welcome";
      byte[] data = new byte[1024];
      data = Encoding.ASCII.GetBytes(welcome);
      client.Send(data, data.Length,SocketFlags.None);

      Console.WriteLine("Disconnected from {0}",clientep.Address);
      client.Close();
      socket.Close();
   }
}
4

2 に答える 2

3

静的IPを取得したら、それをネットワークアダプタのIPの1つとして追加する必要があります。これを行うには、静的IPガイドの設定を確認してください。

次に、サーバーソケットがこのIPにリストされていることを確認する必要があります。これは、サーバーソケットを使用しIPAddress.Anyているため、システムで使用可能なすべてのIPアドレスにバインドされるためです。

最後に、クライアントコードで静的IPを明示的に指定する必要があります。おそらく、このIPを構成ファイルに保存して、後で変更できるようにします。必要に応じて、カスタムドメイン名を設定し、IPの代わりに使用する静的IPを指すようにすることができます。

于 2011-10-10T07:13:49.807 に答える
1

はい、2 つのサーバー間で通信できるように、ポートと IP を構成する必要があります。このための VPN 構成を行いました。このコードを実行しようとしている場所からそのシステムに接続できることを確認してください。これをテストするには、コマンド プロンプトから ipconfig/netstat コマンドを実行します。

最初にこれを実行し、両方のシステムが相互に通信できることを確認してから、このコードを実行してみてください。その後も問題が発生する場合は、お気軽にお問い合わせください。

于 2011-10-10T07:29:37.067 に答える