クライアントコンソールに文字列を入力してサーバーコンソールで受信できるC#のチャットアプリケーションを構築したいとします。C#コンソール - インターネットでペアリングされたアプリケーション
意味:ユーザーBは、ユーザーA以外の場所にある自分のコンピューター上でクライアントプログラムを実行します。クライアントプログラムは、ユーザーAが自分のコンピューターで開いているサーバープログラムにTCP経由で接続します。ユーザーBがプログラム内の文字列を入力してEnterキーを押すと、ユーザーAはインターネット経由の文字列を受信します。
私はそのようなものがあります。
サーバー:
static void Main(string[] args)
{
Console.WriteLine("Start Server ...");
IPAddress b = IPAddress.Any;
TcpListener Server = new TcpListener(b, 5550);
Server.Start();
Console.WriteLine("Server started.");
Console.WriteLine("Wait for Connection...");
TcpClient Client = Server.AcceptTcpClient();
Console.WriteLine("Succeeded");
Stream MessageStream = Client.GetStream();
while (true)
{
byte[] message = new byte[4096];
int bytesRead;
try
{
bytesRead = MessageStream.Read(message, 0, 4096);
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine(encoder.GetString(message, 0, bytesRead));
}
catch (IOException)
{
break;
}
}
Client.Close();
Server.Stop();
}
はクライアント:
static void Main(string[] args)
{
IPAddress IP = IPAddress.Parse("192.168.2.140");
TcpClient Client = new TcpClient();
Client.Connect(IP, 5550);
Stream MessageStream = Client.GetStream();
Console.WriteLine("Success");
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine("Enter Text here");
var input = Console.ReadLine();
if(input != null)
{
byte[] buffer = encoder.GetBytes(input);
MessageStream.Write(buffer, 0, buffer.Length);
MessageStream.Flush();
}
Console.ReadLine();
}
私は私のラップトップ上で、私のPCやサーバー上でクライアントを実行しますそれはうまく動作しますが、私のローカルネットワーク外のコンピュータとはどのように動作しますか?私はcanihazip.comから入手WAN IP、と IPAddress IP = IPAddress.Parse("192.168.2.140");
を交換した場合
、それは接続する必要はありません。
EDIT:
ポート転送は、私は問題があるを推測有効に
:私が望むように、それは私の自宅のローカルネットワークで動作し、それが接続されて、私はテキストを書くことができ、サーバーアプリケーションに表示されます。しかし、私はいくつかの友人にこれを試すように頼むと、私のサーバーに接続することはできません。
これはネットワーキングの問題のように聞こえます - あなたのispがあなたをブロックしておらず、ルータにこれらのポートが適切に転送されていることを確認してください。 –
プログラミングに関する質問ではありませんが、これは本当にITに関する質問です。 – BradleyDotNET
@ DanielA.White私のポストの編集を参照してください、それはポストフォワーディングをサポートしています。私が述べたように、私のローカルネットワークでは正常に動作しますが、それ以外では、私の友人に試してみると、クライアントは自分のネットワークからサーバアプリケーションに接続できません – Flauschcoder