すばらしきOfficeとアドインの世界すばらしきOfficeとアドインの世界まだまだOfficeを使いこなせていないだけ?!をサブタイトルに、Officeと便利なアドイン等の使い方をメインに紹介と解説を行います。その他、やったこと・気になること。PCとスマホ間でデータを共有したい案件がありまして、画像とその付属データを共有を考えています。00:11上記のように、PC↔Android間の通信を技術的に調べたいと思っていました。こちらに取り組み始めたいと思います。画像とデータの共有を考えています。C#でのソケット通信を思い出す久しぶりにソケット通信を行うので、すっかりソケット通信をすっかり忘れていました。5年ぐらい前には下記のリンクで勉強したような気がします。なんかもう一つアットマークITあたりでチャットサンプルを参考にしたような気がしたが、もういいや忘れよう。(Nonsoftさん)C#でのソケット通信を調べなおす当時より、さらにいろいろな情報が出てきているのに加えて、自分の理解力が少し増えたのと、調査のリテラシーも改善されたようなので、調べなおしました。当時は何が原因で途中で投げだしたかもわかったような気がします。1~4でそこらへんで混乱したのかも。今なら、スレッド・UIの非同期(async/awai)も少しわかるので、下記のリンクを参考・そのまま利用させてもらいながら、自分の用途に合ったように改良も可能かも。(@nekokojpnさん)Thread()で書いてくれていて、わかりやすいのはTomosoftさんの例かと思います。最終的にUIを持つソフトに、ソケット通信を組み込もうとすると、UIとの非同期処理というか、そこらへんが重要になってきて、またそこから調べなおすと、メインテーマを見失う(趣味でやってると)ぐらいの労力になるので、UIとの非同期処理も書かれていると、大変進みやすいかと思います。Microsoft公式は日本語が読みやすくなってからは、だいぶ理解が進みやすいです。理解が進んでいない状態で、英語で読むとさらにわからんようになったりすので、日本語で読める例が増えているのはありがたい。さんの例かと思います。実際にやってみる結果としては、下記の方法で通信ができていることが確認できました。ソースコード追加点Tomosoftさんのコードをもとに以下の通信テストを行います。前に、少しだけ文字通りのコピペでは動作しないので、変更点を挙げておきます。StateObjectクラスをサーバ側のコンソールプロジェクトの方に作成しておく。Microsoft公式のようにStateObjectを作成ください。そのほかここでは、BUFFER_SIZEと大文字にしています。TcpClientクラスをクライアント側のクラスに自分で作成する。(クラスの中身をTomosoftさんが書いてくれているので、自分でクラスは作成すること。)同一PC内での通信サーバ側とクライアント側を立ち上げます。クライアント側でConnectボタンを押します。→メッセージが表示されます。Sendボタンを押します。Closeボタンを押すと、エラーが発生しますがこちらは調査中。実際に自分のソフトに組み込む際は内容を精査して対策してから組み込みます。別のパソコンにソリューションをコピーして、実際にやってみました。ほとんど同じ動作になるので、PC1側のみの結果を書きます。サーバ側(PC1)とクライアント側(PC2)を立ち上げます。クライアント側でConnectボタンを押します。→メッセージが表示されます。Sendボタンを押します。今回は少し別の文字列でも送信できているかを確認して、送信できていました。456)ということで、Wi-Fiを通してソケット通信で、別のパソコンにつながっている(データを送信できること)ことが確認できました。その他、やったこと・気になること。192.168.11.7′′などをして、pingが通っているかも確認しました。無線LANのユニットが2ポートあったので、確認したら、パソコン同士が別のポートにつながっているようだったので、同じ方になるように合わせました。Closeボタン押したときのエラー。私の実装が悪いかと思うので、また暇があるときに確認してみます。Dns.GetHostByName()が古いといわれている点。→次回、「ローカル・コンピュータのIPアドレスを取得するには?[C#、VB]」でやってみる。IPアドレスの変更ができるようにしておきたい。画像転送と、その他気になることに関して調査・コーディングしなおしたので、追記します。ソケット通信での画像転送について現在画像転送のテスト中、JFIFの文字がみえているので、バッファに落としこんで、サーバ側に転送できているようです。Socket.Send関数が勝手に分けてくれているので、そこは考慮に入れないといけない模様。一度頭を整理しなおしてから、画像にして保存したいと思います。画像転送の付加情報だいぶ考えて、画像を転送するためにヘッダを追加。ヘッダの内容は、データの型(画像、テキスト、その両方)・ファイルサイズ・ファイル名・ストリームのエンドマーカ(10個程度)などを追加しました。細切れに1000ずつ程度送られてくるバッファを積算していき、画像のバッファのみを切り出して、最終的にファイルにして保存。Client側のコード長いので、すべてのソースコードは公開しませんが、考え方の参考になれば幸いです。関数の部分はすべて自分で定義した定数です。header;}使い方の部分としては、以下のような感じです。}}画像転送してみたが。コードの間違いがあり画像化しようとしたら画像化できておらず。ここでもだいぶ迷いました。したものかと思い、WinMergeで比較できることを思い出し、WinMergeをダウンロード。画像の拡張子のままだと、画像の比較になってしまうので、拡張子を変更して、比較。黄色の部分が異なる部分です。右側で重複している部分があるので、コードを見直すと2重に積算バッファに追加している部分があったので、修正したら。画像の転送に成功していました。~ファイル転送アプリを作った話~も参考にしながら画像を転送を行いました。Kotlin側でも参考にさせてもらいます。アルバムアプリのようなものを作ろうとしています。Light(NTAG21x)の仕様をがっつり読みました。KotlinでActivity-Fragmentの画面遷移を勉強します。Button)のアイコンをベクターアセットで作成できます。RTTが実装されました。すばらしきOfficeとアドインの世界.。