質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

0回答

1650閲覧

C#】 UDP通信でルーター超えをしたい

jumpaction

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

UDP

UDP(User Datagram Protocol)とは、トランスポート層のプロトコルであり、コネクション型のデータサービスです。IPネットワーク上の別のホストにコンピュータのアプリケーションがメッセージを送ることができ、転送チャンネルやデータ経路を設定する必要はありません。TCPに比べて高速であるが、信頼性が薄いという特徴があります。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

1クリップ

投稿2020/03/10 02:48

編集2020/03/10 03:32

【C#】 UDP通信でルーター超えをしたい

タイトル通りです。UDP通信でルーター超えをしたいです。
ポート開放は出来ません(回線によってできない人がいるから)
グローバルIP同士で通信したいです

#想像している構造
UDPで

Aさん→Aさんのルーター→サーバー(サーバーなし)Bさんのルーター→Bさん

その逆も

Bさん→Bさんのルーター→サーバー(サーバーなし)Aさんのルーター→Aさん

ブロードキャストも使いたい(UDP)

調べたりしたんですが、UDPホールパンチングなどと言うのがありました
ですが、WindowsFormsでのやり方などが一切なかったので、
ここで質問しました

ツールのバージョンなど

  • 言語 : C#
  • IDE : VisualStudio2019 (早く2020出ないかなw)
  • フレームワーク : .Net Framework
  • アプリ(ソフト)の種類 : WindowsForms
  • 開発環境 : Windows10 Home

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takumiboo

2020/03/10 02:53

「許してくださいw」とかで回答してくれる人が現れますかね…。
jumpaction

2020/03/10 03:17

じゃあどういうことを書けば、、
Takumiboo

2020/03/10 03:23

書き方の問題です。
dodox86

2020/03/10 03:40

Windows Formsや.NET Frameworkなどプログラム側だけではどうしようもありません。AさんやBさんが使うルーター(<これが一番重要)、PCなどのネットワーク設定の問題です。
jumpaction

2020/03/10 03:44

UDPホールパンチングというやつでできませんか?
jumpaction

2020/03/10 04:18

hamachiのようなVPNを使う方法はありますか? 調べたところP2Pというやつらしいです VPNを無料で建てれるサイトとかないと、
Y.H.

2020/03/10 04:23

VPNサーバー建てて、クライアントはVPN経由で同一ネットワークに接続する前提であれば 大概の事はできるのでは? アプリは普通に同一ネットワークで動くものを作成するだけだし。
jumpaction

2020/03/10 05:00

どうやるんですか
Y.H.

2020/03/10 05:03

なにをでしょうか? 「ルーター超え」しないUDP通信を行うアプリケーションはできている(作成できる)んですよね? だったら VPNサーバー建てて、普通に通信したいクライアントをそれぞれVPNに接続して 同一ネットワークにしたうえで 「ルーター超え」しないUDP通信を行うアプリケーションを動かせばいいんじゃないでしょうか。
Takumiboo

2020/03/10 05:08

ちなみに、「WindowsFormsでのやり方」とか関係ありません。なんなら最初はコンソールアプリでチャットが正しく行えるかチェックしたほうが良いでしょう。それが出来たら後はUI部分を付けていけばいいので。
izmktr

2020/03/10 07:24

UDPパンチングをするには、タイミングを合わせる必要があるので、AさんのPCとBさんのPCとの間でデータ通信が出来る必要があります 一般的にはTCPを使ってAさんとBさんのデータを送りあえる状態にします また、UDPパンチング自体は失敗することもあるので、成功すればUDPで、失敗すればTCPでという形式になります ということで、まずはTCPでちゃんと作ることがスタートでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問