view daemon/Connection.cs @ 11:1f7d4f168b89

socket test
author riono <e165729@ie.u-ryukyu.ac.jp>
date Thu, 19 Nov 2020 03:05:28 +0900
parents 5f726dc31874
children 9129c437b1a3
line wrap: on
line source

using System;
using System.Collections.Concurrent;
using System.IO;
using System.Net;
using System.Net.Sockets;
using Christie_net.datagear.command;

namespace Christie_net.daemon {
public class Connection {
    public Socket socket;
    public string name;
    //public CodeGearManager cgm;
    public ConcurrentQueue<Command> sendQueue = new ConcurrentQueue<Command>();
    public bool sendManager = true;
    private object syncObject = new object();
    
    // public Connection(Socket socket, CodeGearManager cgm) {
    //     this.socket = socket;
    //     this.cgm = cgm;
    // }
    
    public Connection(){}

    public void SendCommand(Command cmd) {
        sendQueue.Enqueue(cmd);
    }

    /// <summary>
    /// socketが接続しているhostnameとそのport番号を返す
    /// </summary>
    /// <returns></returns>
    public string GetInfoString() {
        return (Dns.GetHostEntry(((IPEndPoint) socket.RemoteEndPoint).Address.ToString()).HostName + ":" +
                ((IPEndPoint) socket.RemoteEndPoint).Port.ToString());
    }

    public void Close() {
        //socket
    }

    public void Write(Command cmd) {
        MemoryStream stream = cmd.Convert();

        // while (stream.) {
        //     
        // }
    }
}
}