private static void Main()
        {
            manualReset = new ManualResetEvent(false);

            var clientCfg = new SocketCfg("25.175.152.176", 9959, ProtocolType.SDP);

            Console.Title = clientCfg.ProtocolType + " - Async Client Socket Test - SDP LIBRARY";

            client             = SdpSocket.ClientFactory(clientCfg);
            client.Connect    += client_Connect;
            client.Receive    += client_Receive;
            client.Disconnect += client_Disconnect;

            client.BeginConnect();

            manualReset.WaitOne(2000);

            var packet = new byte[16];

            client.Send(packet);

            while (true)
            {
                Console.ReadKey();
            }
        }
예제 #2
0
        /// <summary>
        /// Construtor
        /// </summary>
        /// <param name="asyncServerSocket"></param>
        /// <param name="cfg"></param>
        /// <param name="socket"></param>
        /// <param name="buffer"></param>
        internal AsyncState(IAsyncSocket asyncServerSocket, SocketCfg cfg, System.Net.Sockets.Socket socket, byte[] buffer)
        {
            AsyncSocket = asyncServerSocket;
            Socket      = socket;
            Buffer      = buffer;
            Cfg         = cfg;

            switch (cfg.ProtocolType)
            {
            case ProtocolType.TCP:
                ConfigureTcp(cfg);
                break;

            case ProtocolType.UDP:
                ConfigureUdp(cfg);
                break;

            case ProtocolType.SDP:
                ConfigureSdp(cfg);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #3
0
        /// <summary>
        /// Construtor
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="addressFamily"></param>
        /// <param name="socketType"></param>
        /// <param name="protocolType"></param>
        public AsyncClientSocket(SocketCfg cfg, AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
            : base(addressFamily, socketType, protocolType)
        {
            // objeto de configuração do socket
            Cfg = cfg;

            // Representa o ponto de conexão (IP e Porta) do servidor
            IpEndPoint = new IPEndPoint(IPAddress.Parse(cfg.IP), cfg.Port);

            switch (cfg.ProtocolType)
            {
            case Enums.ProtocolType.TCP:
                ConfigureTcp();
                break;

            case Enums.ProtocolType.UDP:
                ConfigureUdp();
                break;

            case Enums.ProtocolType.SDP:
                ConfigureSdp();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public ClientControl(SocketCfg cfg)
        {
            this.cfg = cfg;
            InitializeComponent();
            times = new List <string>();
            //Console.Title = "Client Console";

            socket             = SdpSocket.ClientFactory(cfg);
            socket.Connect    += socket_Connect;
            socket.Receive    += socket_Receive;
            socket.Disconnect += socket_Disconnect;
            socket.BeginConnect();
        }
예제 #5
0
        public ServerControl(SocketCfg cfg)
        {
            this.cfg = cfg;
            InitializeComponent();

            //  Console.Title = "Server Console";

            socket             = SdpSocket.ServerFactory(cfg);
            socket.Connect    += socket_Connect;
            socket.Receive    += socket_Receive;
            socket.Disconnect += socket_Disconnect;
            socket.BeginAccept();
        }
예제 #6
0
        private void ConfigureSdp(SocketCfg cfg)
        {
            switch (cfg.SocketType)
            {
            case SocketType.Datagram:
                receiveModule = new SdpDatagramReceiveModule(this);
                sendModule    = new SdpDatagramSendModule(this);
                break;

            case SocketType.Stream:
                throw new Exception("Este protocolo não permite envio/recebimento do tipo stream");

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #7
0
        private static void Main()
        {
            var serverCfg = new SocketCfg("25.175.152.176", 9959, ProtocolType.SDP);

            Console.Title = serverCfg.ProtocolType + " - Async Server Socket Test - SDP LIBRARY";

            server             = SdpSocket.ServerFactory(serverCfg);
            server.Connect    += server_Connect;
            server.Receive    += server_Receive;
            server.Disconnect += server_Disconnect;

            server.BeginAccept();


            Console.ReadKey();
        }
예제 #8
0
        private void ConfigureTcp(SocketCfg cfg)
        {
            switch (cfg.SocketType)
            {
            case SocketType.Datagram:
                receiveModule = new TcpDatagramReceiveModule(this);
                sendModule    = new TcpDatagramSendModule(this);
                break;

            case SocketType.Stream:
                receiveModule = new TcpStreamReceiveModule(this);
                sendModule    = new TcpStreamSendModule(this);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private void btnIniciar_Click(object sender, EventArgs e)
        {
            if (txtIP.Text == string.Empty || txtPort.Text == string.Empty || cbProtocolo.SelectedIndex == -1 ||
                cbTipo.SelectedIndex == -1)
            {
                MessageBox.Show("Preencha todos os campos");
                return;
            }
            if (txtIP.TextLength < 5)
            {
                MessageBox.Show("Preencha o IP corretamente");
                return;
            }

            string       ip           = txtIP.Text;
            int          port         = int.Parse(txtPort.Text);
            ProtocolType protocolType = (ProtocolType)cbProtocolo.SelectedItem;

            Cfg            = new SocketCfg(ip, port, protocolType);
            ConnectionType = (ConnectionType)cbTipo.SelectedItem;
            DialogResult   = DialogResult.OK;
            Close();
        }
        /// <summary>
        /// Construtor
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="addressFamily"></param>
        /// <param name="socketType"></param>
        /// <param name="protocolType"></param>
        public AsyncServerSocket(SocketCfg cfg, AddressFamily addressFamily, SocketType socketType,
                                 ProtocolType protocolType)
            : base(addressFamily, socketType, protocolType)
        {
            Cfg = cfg;

            switch (cfg.ProtocolType)
            {
            case Enums.ProtocolType.TCP:
                ConfigureTcp();
                break;

            case Enums.ProtocolType.UDP:
                ConfigureUdp();
                break;

            case Enums.ProtocolType.SDP:
                ConfigureSdp();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }