Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 13.07.2019
Сообщений: 68
.NET 4.x

Найти в БД номер порта, которая пришла с сервера

08.08.2019, 15:00. Показов 639. Ответов 1

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Linq;
using System.Collections.Generic;
 
namespace TipaServer
{
    class Connector
    {
        public Connector()
        {
            tcpClient = new TcpClient();
 
                adminContext db = new adminContext();
                var info = db.Infoes.Select(c => c.Port);
                foreach (int port in info)
                {
                  
                    Console.WriteLine(port);
 
                    Task.Run(() =>
                    {
                        return port;
                    });
                }    
        }
 
       private TcpClient tcpClient;
 
        private NetworkStream stream;
        public void Server(int port)
        {
            while (true)
            {
 
              try
              {
                    if (tcpClient != null && tcpClient.Client != null && !tcpClient.Client.Connected)
                    {
                        tcpClient = new TcpClient();
                        tcpClient.Connect("127.0.0.1", port);
                        stream = tcpClient.GetStream();
                    }
                    
                        
                    
                      byte[] data = new byte[64]; // буфер для получаемых данных
                      StringBuilder builder = new StringBuilder();
                      int bytes = 0;
                        do
                        {
                         bytes = stream.Read(data, 0, data.Length);
                         builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                        }
                        while (stream.DataAvailable);
 
                        string message = builder.ToString();
                        Console.WriteLine(FromStringBitToEnum(message));
              }
              catch
              {    }
 
 
            }
        }
 
        public enum Conversion
        {
            power,
            cycle,
            emergency,
            off
        }
        private string FromStringBitToEnum(string bit)
        {
            if (bit[2] == '1') //если последний элемент строки, которая пришла с клиента, равен 1, то вернем АВАРИЯ
            {
                return Conversion.emergency.ToString();
            }
            else if (bit[1] == ('1')) //если ПРЕДпоследний элемент строки, которая пришла с клиента, равен 1, то вернем ЦИКЛ
            {
                return Conversion.cycle.ToString();
            }
            else if (bit[0] == ('1')) //если ПЕРВЫЙ элемент строки, которая пришла с клиента, равен 1, то вернем ПИТАНИЕ
            {
                return Conversion.power.ToString();
            }
            else
            {
                return Conversion.off.ToString(); // иначе ВЫКЛЮЧЕНО
            }
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2019, 15:00
Ответы с готовыми решениями:

Нужно ли в клиенте указывать ip-адрес сервера или достаточно указать номер порта
Доброго времени суток! :) Пытаюсь разобрать серверную программку, которая ждёт от клиента текстовое сообщение. Нужно ли в клиенте...

Открытие порта для сервера
Как открыть порт для сервера кс 1.6 в роутере tp-link wr740n? уже все перелопатил, ничего не найду толкового, помогите пожалуйста

Прослушивание порта сервера VCL
В сетевом приложении использую при создании сервера некоторый порт. Сервер создаю используя сокет VCL. Можно ли с его помощью узнать есть...

1
1 / 1 / 0
Регистрация: 13.07.2019
Сообщений: 68
09.08.2019, 10:00  [ТС]
Дополняю.
Сказали сделать tcp сервер и tcp клиент. Но надо чтоб сервером был tcpclient, а tcplistener клиентом.
tcpclient консольное приложение и при включении он ждёт подключения от tcplistener.
tcplistener winform приложение и при запуске появляется окно с textbox и 2мя button (1 включает поток, 2 выключает поток), в textbox можно вводить любые порты.
Я и это сделал. Но потом мне еще дополнили сделать базу данных mssql, содержащая id|Port|Name. Сделал, подключил к tcpclient.
И теперь tcpclient должен найти в БД тот порт, которая пришла с tcplistener.
foreach-ом сделал, но он перебирает всё и уходит в Exception, даже если находит нужный порт.
Начинает перебирать с самого минимального значения порта (без разницы как, главное чтоб работала), и доходит до максимального, и если этот максимальный совпадает с номером порта, которая пришла с tcplistener, то он подключается. Но это только с портом, у которой значение максимально.
номера портов:
9777 //начинает с мини-го, если совпадает, то подключается
9776 //начинает с мини-го, если совпадает, то идет дальше
9774 //начинает с мини-го, если совпадает, то идет дальше
9773 //начинает с мини-го, если совпадает, то идет дальше
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2019, 10:00
Помогаю со студенческими работами здесь

Деление порта сервера на каналы.
Vot problema kak sdelat delenie porta na kanali.Naprimer IRC server rabotaet na 6667 portu a v portu ku4a kanalov.Est metod getChannel...

Найти номер строки, которая начинается с К положительных чисел подряд
//Дана целочисленная матрица À(N, N). // Найдите номер первой из ее строк, // которые начинаются с К положительных чисел подряд. ...

RDP подключение+проброс порта+3 сервера+статика
Здравствуйте,уважаемые специалисты! Суть проблемы такая!Есть 2 сервера 2008r2 sr1-они именно сервера. 1 сервер -(video rec)...

Найти номер строки в матрице, которая содержит наибольшее количество нулей
Дан массив x(n,m) .найти номер строки ,которая содержит наибольшее количество нулей Если можно,то с блок-схемой)

Номер порта ввода-вывода
Подскажите. пожалуйста. где хранится номер порта ввода-вывода для команды с прямой адресацией порта?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru