Diskuze: Komunikace po TCP/IP
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Něco takového se tu řešilo (viz komentáře pod programem): http://www.itnetwork.cz/…alena-plocha
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
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.
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.
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.
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.
Zobrazeno 10 zpráv z 10.