NetworkComms.NetフレームワークTcp通信ノート


インスタンスソース
1.プロジェクトはNetworkCommsDotNetを参照する必要がある.dll(NetworkComms.Net通信フレームワーク)シーケンス番号を導入するにはprotobuf-netを導入する必要があります.dll(NetworkCommsDotNetは、最も一般的なシーケンス化方式を提供します)
2. 
        A aaa = null;
        public List connectionInfos;

        public List connectionListenerBases;        

private void button1_Click(object sender, EventArgs e)
        {
            //IP 

            IPEndPoint thePoint = new IPEndPoint(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text));

            // IP    TCP 
            connectionListenerBases = Connection.StartListening(ConnectionType.TCP, thePoint);
            // GetName 

            NetworkComms.AppendGlobalIncomingPacketHandler("GetName", IncomingMsgHandle);
            
            button1.Text = " ";
            
        }

        private void IncomingMsgHandle(PacketHeader header, Connection connection, string msg)
        { 
                aaa = new A();

                connection.SendObject("ResName", aaa);
        }

ここでは、サービス側のリスニングと時間メッセージ処理です.
クライアントから送信されたGetNameを取得すると、クライアントにResNameのオブジェクトタイプが返されます.
クライアントステップ:IPEndPointオブジェクトの作成――IPEndPointの傍受――メッセージ処理
注意:StartListeningは、リスニング・リストにリスニング・アドレスを追加する静的メソッドです.つまり、リストを書いて複数のリスニングを追加できます.静的でインスタンス化されていないため、現在のサーバの接続ip情報を取得するにはNetworkCommsクラスのAllConnectionInfo()メソッドが必要です
情報処理、参照:https://blog.csdn.net/networkcomms/article/details/44218217
3.クラスを転送するときのシーケンス化の構文は(protobuf-net.dllをインポートする必要がある)
    [ProtoContract]
    public class A
    {
        public A()
        {
            Age = Guid.NewGuid().ToString();
            Name = Guid.NewGuid().ToString();
            DT = DateTime.Now.Millisecond;
        }

        [ProtoMember(1)]
        public string Age { get; private set; }
        [ProtoMember(2)]
        public string Name { get; private set; }

        [ProtoMember(3)]
        public int DT { get; private set; } 

        
    }

4.クライアント接続サーバ(クライアントのipはネイティブip、ポートが設定されていない場合はランダムに割り当てられる(一般的にはランダムに割り当てられる)
//接続情報類public ConnectionInfo connnecionInfo=null;
//接続クラス接続接続;
connnectionInfo=new ConnectionInfo(Ip,ポート);
//失敗した場合、例外メッセージconnection=TCPConnectionがポップアップされます.GetConnection(connnectionInfo);
クライアントメッセージ処理:
 A resMsg = connection.SendReceiveObject("GetName", "ResName", 5000, "111");
GetNameから送信されたデータ名
「ResName」が受信したデータ名
5000、タイムアウト時間(ミリ秒)
「111」送信データ
 
 
必要な友达がいたら、私が送った完全な例を教えてください.