IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Mediel
Tvůrce
Avatar
Mediel:5.11.2012 15:51

Cabas kluci, muzete mi sem nekdo prosim podrobne rozepsat komunikaci po TCP/IP. Jak serverovou cast s vlakny pro kazdeho pripojeneho uzivatele, tak klienta s jednoduchym odeslanim napriklad loginu?
Brouzdal jsem trochu na netu, ale moc tem kodum nerozumim. Sice neco delaji, ale kdyz nevim jak to funguje, tak mi to je k nicemu. Tedy vyresilo by to problem ted, ale do budoucna urcite ne... Muzete mi prosim nekdo pomoc? Nebo na to napsat tutorial? Ale prosim podrobne :)

Dekuji

Odpovědět
5.11.2012 15:51
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Mediel
Tvůrce
Avatar
Mediel:6.11.2012 13:07

Nikdo? Nevadí. :)

Nahoru Odpovědět
6.11.2012 13:07
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Mediel
David Hartinger:6.11.2012 13:27

Něco takového se tu řešilo (viz komentáře pod programem): http://www.itnetwork.cz/…alena-plocha

Nahoru Odpovědět
6.11.2012 13:27
New kid back on the block with a R.I.P
Avatar
Mediel
Tvůrce
Avatar
Mediel:6.11.2012 13:38

Rozumim, jen... Dobre, nekde se to naucim, snad to pochopim dobre a udelam sem na to manual. Urcite nejsem jediny, kdo nerozumi TCP/IP komunikaci :)

Nahoru Odpovědět
6.11.2012 13:38
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Mediel
Kit:6.11.2012 14:00

Není to na jeden koment a článek se mi o tom tady psát nechce. Bylo by lepší, kdyby sis na to našel nějakou knížku. Nevím ani, do jaké hloubky chceš jít, protože v aplikacích se s tím zachází jako se souborem.

Nahoru Odpovědět
6.11.2012 14:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Mediel
Tvůrce
Avatar
Mediel:6.11.2012 14:17

No mám to rozpracované takto:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Threading;
using System.Net;

namespace Core
{
    public class Communication
    {
        TcpListener server = null;
        Int32 port = 9999;
        IPAddress localAddr = IPAddress.Parse("127.0.0.1");

        /// <summary>
        /// Vytvoří server, který bude poslouchat na portu <c>port</c>.
        /// </summary>
        /// <param name="port">Číslo portu.</param>
        public Communication(int port)
        {
            server = new TcpListener(localAddr, port);
        }

        /// <summary>
        /// Zahájí naslouchání.
        /// </summary>
        public void Start()
        {
            server.Start();
        }

        /// <summary>
        /// Ukončí naslouchání
        /// </summary>
        public void Stop()
        {
            server.Stop();
        }

        /// <summary>
        /// Událost vyvolaná v případě, že se připojí nějaké čidlo.
        /// </summary>
        public event EventHandler<SensorConnectedEventArgs> SensorConnected;

        /// <summary>
        /// Událost vyvolaná v případě, že přijdou nějaká data ze sítě (od čidla).
        /// </summary>
        public event EventHandler<DataReceivedEventArgs> DataReceived;
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Core
{
    /// <summary>
    /// Parametr události "připojení senzoru". Obsahuje ID senzoru, který se připojil.
    /// </summary>
    public class SensorConnectedEventArgs : EventArgs
    {
        public byte SensorID { get; private set; }

        public SensorConnectedEventArgs(byte sensorID)
        {
            SensorID = sensorID;
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Core
{
    /// <summary>
    /// Parametr události "připojení senzoru". Obsahuje zprávu, kterou čidlo odeslalo.
    /// </summary>
    public class DataReceivedEventArgs : EventArgs
    {
        public DataMessage Message { get; private set; }

        public DataReceivedEventArgs(DataMessage message)
        {
            Message = message;
        }
    }
}

víceméně stačí, že se připojí cca 5 zařízení. A každou sec odešlou nějaká data. A potřebuji tato data přijmout a uložit do DB.

Nahoru Odpovědět
6.11.2012 14:17
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Mediel
Kit:6.11.2012 14:34

Pokud je ta databáze síťová, tak s ní musíš navázat druhé spojení, tentokrát jako klient. Souborovou DB stačí jen otevřít správným ovladačem.

Nahoru Odpovědět
6.11.2012 14:34
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Mediel
Tvůrce
Avatar
Mediel:6.11.2012 14:37

Db neni sitova... DB bude pouze pristupna localu. Nevedel jsem, ze TCP/IP je tak slozite.

Nahoru Odpovědět
6.11.2012 14:37
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Mediel
Kit:6.11.2012 16:18

Spousta uživatelů používá síťovou databázi z localu, např. MySQL nebo Redis. Některé se dají otevřít dvěma způsoby: Buď přes TCP, anebo přes socket. Obvykle však stačí použít správný ovladač, ten si vhodnou metodu vybere sám.

Nahoru Odpovědět
6.11.2012 16:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Mediel
Tvůrce
Avatar
Mediel:6.11.2012 23:12

Tak uz to mam... Je to teda masakr motorovym kodem :D

Nahoru Odpovědět
6.11.2012 23:12
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.