スキップしてメイン コンテンツに移動

C#でPC間の通信をAIにサンプル書いてもらいました。


C#でPC間の通信をAIにサンプル書いてもらいました。

実際に動作は確認してないですが、参考になれば。
PC側のFirewallだとか、
IPアドレス固定とか、
そういったものはちゃんと考えた方が良いです。

サーバー側

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

namespace con1
{
    // ソケット通信(サーバー側)
    class server1
    {
        static void Main()
        {
            IPAddress host1 = IPAddress.Parse("127.0.0.1");
            int port1 = 8765;
            IPEndPoint ipe1 = new IPEndPoint(host1, port1);
            TcpListener server = null;
            string recvline, sendline = null;
            int num, i = 0;
            Boolean outflg = false;
            byte[] buf = new byte[1024];
            Regex reg = new Regex("\0");

            try
            {
                server = new TcpListener(ipe1);
                Console.WriteLine("クライアントからの入力待ち状態");
                server.Start();

                while (true)
                {
                    using (var client = server.AcceptTcpClient())
                    {
                        using (var stream = client.GetStream())
                        {
                            while ((i = stream.Read(buf, 0, buf.Length)) != 0)
                            {
                                recvline = reg.Replace(Encoding.UTF8.GetString(buf), "");
                                Console.WriteLine("client側の入力文字=" + recvline);

                                if (recvline == "bye")
                                {
                                    outflg = true;
                                    break;
                                }

                                try
                                {
                                    num = int.Parse(recvline);
                                    if (num % 2 == 0)
                                    {
                                        sendline = "OKです";
                                    }
                                    else
                                    {
                                        sendline = "NGです";
                                    }
                                }
                                catch
                                {
                                    sendline = "数値を入力して下さい";
                                }
                                finally
                                {
                                    buf = Encoding.UTF8.GetBytes(sendline);
                                    stream.Write(buf, 0, buf.Length);
                                    Array.Clear(buf, 0, buf.Length);
                                }
                            }
                        }
                    }

                    if (outflg == true)
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                server.Stop();
                Console.WriteLine("サーバー側終了です");
            }
        }
    }
}

クライアント側

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

namespace ClientSocketExample
{
    class Program
    {
        static void Main()
        {
            // サーバーのIPアドレスとポート番号を設定
            string serverIpAddress = "127.0.0.1"; // サーバーのIPアドレス
            int serverPort = 8765; // サーバーのポート番号

            try
            {
                // ソケットを作成
                using (var clientSocket = new TcpClient())
                {
                    // サーバーに接続
                    clientSocket.Connect(serverIpAddress, serverPort);

                    // メッセージを送信
                    string messageToSend = "Hello, server!";
                    byte[] sendData = Encoding.UTF8.GetBytes(messageToSend);
                    clientSocket.GetStream().Write(sendData, 0, sendData.Length);

                    // サーバーからの応答を受信
                    byte[] receiveData = new byte[1024];
                    int bytesRead = clientSocket.GetStream().Read(receiveData, 0, receiveData.Length);
                    string serverResponse = Encoding.UTF8.GetString(receiveData, 0, bytesRead);
                    Console.WriteLine("サーバーからの応答: " + serverResponse);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("エラー: " + ex.Message);
            }
        }
    }
}

コメント

このブログの人気の投稿

「8発目」 神奈川県立の出願システムのドメインmail.shutsugankanagawa.jp をdigコマンドで色々と確認してみた。

今、話題となってる、高校受験する為にネットで登録する時にgmail が届かない件  2024/01/17 16時 頃 digコマンドを利用して確認してみました。さて、どこが悪いんでしょうね。 まずはこれから % dig mail.shutsugankanagawa.jp ;; ANSWER SECTION: mail.shutsugankanagawa.jp. 122 IN A 13.113.157.93 mail.shutsugankanagawa.jp. 122 IN A 52.193.62.66 mail.shutsugankanagawa.jp. 122 IN A 52.194.140.218 今度は、txt をつけて % dig mail.shutsugankanagawa.jp txt ;; ANSWER SECTION: mail.shutsugankanagawa.jp. 300 IN TXT "v=spf1 include:amazonses.com ~all" mail.shutsugankanagawa.jp. 300 IN TXT "google-site-verification=eBRf3ipFa5PReqemKRG2zePZUOEfBc6NO5GuPisqN5A" 次はMXをつけて % dig mail.shutsugankanagawa.jp mx ;; ANSWER SECTION: mail.shutsugankanagawa.jp. 300 IN MX 10 ec2-52-193-62-66.ap-northeast-1.compute.amazonaws.com. mail.shutsugankanagawa.jp. 300 IN MX 10 ec2-52-194-140-218.ap-northeast-1.compute.amazonaws.com. mail.shutsugankanagawa.jp. 300 IN MX 10 ec2-13-113-157-93.ap-northeast-1.compute.amazonaws.com. mail.shutsugankanagawa.jp. 300 IN MX 20 feedback-s...

JavaScript入門 - パート3

JavaScript入門 - パート3 パート3では、JavaScriptのオブジェクトと配列について説明します。 オブジェクト 1. オブジェクトとは オブジェクトは、関連するデータや機能をまとめるための構造です。プロパティ(データ)とメソッド(関数)を持つことができます。 let person = { name: "太郎", age: 30, greet: function() { console.log("こんにちは、" + this.name + "です。"); } }; console.log(person.name); // "太郎" console.log(person.age); // 30 person.greet(); // "こんにちは、太郎です。" 2. オブジェクトのプロパティにアクセスする オブジェクトのプロパティにはドット記法やブラケット記法でアクセスできます。 let car = { brand: "トヨタ", model: "カローラ", year: 2020 }; // ドット記法 console.log(car.brand); // "トヨタ" // ブラケット記法 console.log(car["model"]); // "カローラ" 3. プロパティの追加と削除 オブジェクトにプロパティを追加したり、削除したりできます。 let book = { title: "JavaScript入門", author: "山田太郎" }; // プロパティの追加 book.year = 2021; console.log(book.year); // 2021 // プロパティの削除 delete book.auth...

2024年のITトレンド

最新のITトレンド 2024年のIT業界では、以下のようなトレンドが注目されています。 1. ジェネレーティブAIとクラウドインフラ ジェネレーティブAIは引き続き急速に発展しており、多くの企業がその活用を進めています。クラウドプロバイダが主要なコンピューティングリソースを提供し続けており、新しい技術やリソースの導入により、モデルの最適化と小型化が進んでいます。これにより、より小規模な企業や個人でも高度なAI技術を活用しやすくなっています。 2. スペーシャルコンピューティング スペーシャルコンピューティング(空間コンピューティング)は、デジタルツインや仮想トレーニングシナリオなど、複雑な情報を動的かつ没入型で伝えるための新たな手段として注目されています。物理的な空間をデジタルで拡張することで、企業は柔軟な空間設計やトレーニングの効率化が期待されています。 3. 新しいウェアラブルデバイス スマートリングや神経技術を組み込んだヘッドフォンなどの新しいウェアラブルデバイスが登場し、従来のスマートウォッチやヘッドフォンの概念を拡張しています。これにより、健康管理やデバイス制御の新たな方法が提供されると期待されています。 4. パスワードレス認証 セキュリティの分野では、パスワードレス認証が広まりつつあります。これは、セキュリティの向上とユーザーエクスペリエンスの改善を目指した技術で、多くの企業がこの新しい認証方法を採用し始めています。 5. 新素材のチップレット 半導体業界では、チップレットと呼ばれる新素材の小型チップが注目を集めています。これにより、従来のチップの限界を超えた性能向上が期待されており、特に計算性能と効率の向上が見込まれています。