3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ElectronでUDP通信する

Last updated at Posted at 2018-10-04

ElectronでUDP通信(送受信)を実装する必要だったので実装内容のメモ。

開発環境

Windows 10
Electron 3.0.2

実装内容

  1. UDP通信には、dgramを使用。
  2. UDP通信行うには、メインプロセス側で通信を行う必要がある。(レンダープロセスから直接UDP通信はできない)
  3. レンダープロセスでUDP信号を受け渡しするには、メインプロセスとレンダープラセス間を通信するIPC通信を利用する必要がある。
  4. IPC通信とUDP通信を値の橋渡しは、メインプロセスでおこなう。

通信の流れ

Electron ( メインプロセス ← IPC通信 → レンダープロセス )
    ↑
UDP通信 
    ↓ 
外部アプリ

実装サンプル

ElectronでUDP通信を行うサンプル。
サンプルコード Github
アプリの使い方 README
windows版 / mac版

  1. 上記のアプリのpackageフォルダ内にアプリデータあるので、OSに合わせたアプリを設置。
  2. IP/Portの設定ファイルの更新
  3. アプリを立ち上げると、最初に受信ログ部分に設定ファイル内容が出力されます。
  4. あとは、IP/PORTがつながっていれば、相互にメッセージが送受信できます。

実装コード概要

メインプロセス

送信

レンダープロセスから受け取った値を、 文字列をバッファに変換して送信しています。

受信

最初にレンダープロセスからIPC通信を行い、
レンダープロセスとメインプロセスが相互に通信できるように設定する。
UDP通信で送られてきた、バッファオブジェクトを文字列に変換し、
IPC通信でそのままレンダープロセスに送る。

レンダープロセス

レンダープロセスでは、IPC通信を介してUDP通信を送受信しています。

送信メッセージ

テキストエリアに入力した文字列をICP通信でメインプロセスに送られます。

UDP受信ログ

メインプロセス側で行ったUDP通信のメッセージを
IPC通信を介して受け取りテキストエリアに出力しています。

その他

今回はUDP通信で扱う値は、文字列のみですがアプリに応じて値を変えたり、
json,osc等のフォーマットで最適化すれば扱いやすくなります。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?