C# Network Client Server

C# Network Client Server

Sigurno će nam zatrebati veza Client Server preko mreže, pa evo najjednostavnija varijanta koja radi u command promptu…

Pokrenuti Visual studio.Net. Select File -> New Project Odabrati Visual C# odabrati Console Application.

Nazovite Server stranu kako god i iskopirajte ovaj kod..

using System;
using System.Text;
using System.Net.Sockets;
using System.Net;

namespace Server
{
    class ServerSocket
    {
        static void Main(string[] args)
        {
            TcpListener l = new TcpListener(1000);  // listens on port number 1000
            l.Start();   // start listener

            Console.WriteLine("Server has started.Waiting for clients...");
            while (true)
            {
                TcpClient c = l.AcceptTcpClient();   // wait for client to make request
                NetworkStream ns = c.GetStream();  // access steam to send data to client.
                string st = DateTime.Now.ToLongDateString();   // get system date and convert it to string
                byte[] buf = System.Text.Encoding.ASCII.GetBytes(st);  // convert string to an array of bytes
                ns.Write(buf, 0, st.Length);  // write to stream

            }

        } // Main()
    } // end of class
}  // end of namespace

Iskompajliramo i spremimo negdje exe file
otvorimo novi projekt za klijent stranu sve isto kao i za server…
i iskopiramo ovaj kod…

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

namespace Client
{
    class ClientSocket
    {
        static void Main(string[] args)
        {
            // connect to server running on localhost at port no. 1000
            TcpClient c = new TcpClient("localhost", 1000);
            NetworkStream ns = c.GetStream();  // get stream

            byte[] buf = new byte[100];   // create byte array to receive data
            ns.Read(buf, 0, 100);  // read data from stream into byte array

            string st = System.Text.Encoding.ASCII.GetString(buf);   // convert byte array to string
            Console.WriteLine(st);
            while (true){
            }
        }
    }
}

Nakon što pokrenemo server on će čekati da se na njega spoji neki klijent, nakon spajanja on će uzeti današnji datum i poslati klijentu.
klijent će samo taj datum ispisati u konzolu.Da bi vidjeli ispis na client strani stavili smo beskonačni loop na kraju.
Obavezno otvoriti port 1000, ali windowsi bi sami trebali pitati da li želimo otvoriti port.

net_C_Sharp

Naravno stisnemo unblock

Ako sve radi ok trebali bi dobiti nešto ovako

net_C_Sharp_1

net_C_Sharp_2

Još malo i možemo kreirati aplikaciju koja će preko mreže paliti led diode na arduinu :)

Leave a Reply