Загрузка...

Исходник C# реализация простейшего сервера и клиента по tcp протоколу.

Тема в разделе C# создана пользователем adeptichhhe 13 фев 2018. 1293 просмотра

Загрузка...
  1. adeptichhhe
    adeptichhhe Автор темы 13 фев 2018 салютую 23 28 янв 2018
    Если будут какие нибудь вопросы спрашивайте все распишу все обьясню.

    Клиент:

    Код

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

    namespace ConsoleApplication1
    {
    class Program
    {
    static Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    static void Main(string[] args)
    {
    Console.WriteLine("YTUPS Client----->");
    socket.Connect("127.0.0.1", 80);
    string message = Console.ReadLine();
    byte[] buffer = Encoding.ASCII.GetBytes(message);
    socket.Send(buffer);
    Console.ReadLine();
    Console.ReadLine();
    }
    }
    }


    Сервер:

    Код

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

    namespace ConsoleApplication1
    {
    class Program
    {
    static Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

    static void Main(string[] args)
    {

    string b = "#start";
    Console.WriteLine("YTUPS Server--->");
    socket.Bind(new IPEndPoint (IPAddress.Any , 80));
    socket.Listen(5);
    Socket client = socket.Accept();
    Console.WriteLine("#connection conducted");
    byte[] buffer = new byte[1024];
    client.Receive(buffer);
    Console.WriteLine(Encoding.ASCII.GetString(buffer));


    byte[] b1 = Encoding.ASCII.GetBytes(b);

    if(b1 == buffer)
    {

    Console. WriteLine("ZBS");

    }

    Console.ReadLine();
    Console.ReadLine();

    }
    }
    }

     
  2. _ZnZ_
    _ZnZ_ 13 фев 2018 63 7 май 2017
    Как правильно принимать пакеты когда изначально не знаешь размер пакета который пришёл
     
  3. adeptichhhe
    adeptichhhe Автор темы 13 фев 2018 салютую 23 28 янв 2018
    кусками
     
  4. _ZnZ_
    _ZnZ_ 14 фев 2018 63 7 май 2017
    Можно пример?
     
  5. adeptichhhe
    adeptichhhe Автор темы 14 фев 2018 салютую 23 28 янв 2018
    постараюсь но не обещаю поскольку я сам не спец в этом деле мне еще многое предстоит выучить,есть к чему идти а насчет вопросов по данному клиенту и серверу без проблем отвечу)
     
  6. buga_inactive_inactive
    Разделение на части тут не причем, максимальный размер "пакета" составляет максимальную емкость инт32, что почти 2+ гб.
    Все зависит как у тебя передает сервер, если он передает полный пакет(не частями), то передатьвать пока у него не закончится возможность передать(данные закончатся) или возможность запись в сетевой поток(соединение отвалится или еще что-то).
    А клиент соответственно должен проверять свойство Available, оно дает возможность узнать количество байтов в массиве доступных для чтения.
    Т.е. ты можешь проверять к примеру после подключения, к примеру, 3 минуты - появляются ли новые данные или нет, читать их и записывать в переменную(например, StringBuilder и т.д.), а потом уже создавать событие, или как-то еще обрабатывать все это действо.
    Реализацию можно сделать как угодно, все зависит от задач и ресурсов.
     
  7. MrCrypto
    MrCrypto 20 фев 2018 169 1 дек 2016
    100 лет искал подобную тему ради вопроса :D Слушай помоги пожалуйста как раз в 1 единственном вопросе, есть чат ( клиент-сервер) что бы он пахал во всем интернете естественно нужно открыть порт и указать IP , открыл порт , пробросил - вот упирается софтина и все, а по локалке пашет, что не так я делаю? По идее все изи а такая тупость...
     
  8. adeptichhhe
    adeptichhhe Автор темы 20 фев 2018 салютую 23 28 янв 2018
    как знакомо))),кароч я думаю что проблема в том что сервер не видит клиент потому что у тебя провайдер выдает белый айпи,папробуй его прописать,узнать его можно на 2ip.ru заодно проверь на том же сайте точно ли открыт порт потому что я вот все сделал как надо но у меня не открывается порт
     
  9. MrCrypto
    MrCrypto 21 фев 2018 169 1 дек 2016
    спасибо друг) у меня как раз наоборот да я был на 2ip - порт открыт, но я кажется сам дотюхал что не так - у меня же динамику провайдер выдает видимо вот и ответ)
     
  10. adeptichhhe
    adeptichhhe Автор темы 21 фев 2018 салютую 23 28 янв 2018
    пиши результат,если не поможет то буду рад помочь
     
  11. MrCrypto
    MrCrypto 21 фев 2018 169 1 дек 2016
    большое спасибо)
     
  12. feiserak
    feiserak 26 фев 2018 94 31 май 2013
    Благодарочка, помогло для решение лабы)
     
  13. adeptichhhe
    adeptichhhe Автор темы 26 фев 2018 салютую 23 28 янв 2018
    а я то думал нафиг не кому не понадобится))
     
  14. ErikSatie
    ErikSatie 26 фев 2018 907 11 мар 2017
  15. adeptichhhe
    adeptichhhe Автор темы 26 фев 2018 салютую 23 28 янв 2018
    ооо ты нашел плагиата крос)))
     
  16. ErikSatie
    ErikSatie 26 фев 2018 907 11 мар 2017
    может ты плагиат?)
     
  17. adeptichhhe
    adeptichhhe Автор темы 26 фев 2018 салютую 23 28 янв 2018
    ну если тебе не в падлу можешь там целое расследование провести и да кстати на ютубе полно такого материала,прикол в том что на лолзе об этом мало пишут и как показала практика есть люди которые искали этот материал
     
  18. adeptichhhe
    adeptichhhe Автор темы 26 фев 2018 салютую 23 28 янв 2018
    ну если тебе не в падлу можешь там целое расследование провести и да кстати на ютубе полно такого материала,прикол в том что на лолзе об этом мало пишут и как показала практика есть люди которые искали этот материал
     
Top