Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 1 / 3
Регистрация: 27.12.2012
Сообщений: 192

Подключение нескольких клиентов одновременно

28.10.2014, 14:26. Показов 1714. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть клиент и сервер. Клиент передает файл на сервер, всё отлично всё работает. Следующие задание звучит так: Доработать программный комплекс из задачи №2 для обеспечения возможности подключения нескольких клиентов одновременно. Помимо отправки сообщения должна быть предусмотрена возможность передачи управляющих воздействий. Объясните, что надо сделать. От разных клиентов посылать разные файлы, которые сохраняются на сервер? Или что? Программы прилагаются
Вложения
Тип файла: rar ИС.rar (65.8 Кб, 2 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2014, 14:26
Ответы с готовыми решениями:

Задача: сделать сервер для нескольких клиентов
Вот есть сервер, который рассчитан только на 1 клиент. Задача: сделать сервер для нескольких клиентов. Как это сделать? Сам сервер: ...

Обеспечить возможность подключения к серверу нескольких клиентов
Люди добрые прошу помощи. У меня есть простенький код сервера с сокетом. Проблема в том, что к серверу может подключиться только один...

Проигрывание одновременно нескольких мп3
Собственно как создать плеер который может проигрывать одновременно несколько файлов? У меня есть код который может проигрывать мп3шки по...

7
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
28.10.2014, 15:01
Цитата Сообщение от Арти7030 Посмотреть сообщение
Объясните, что надо сделать
в идеале уточнить у преподавателя
0
1 / 1 / 3
Регистрация: 27.12.2012
Сообщений: 192
28.10.2014, 15:06  [ТС]
valera_21, Валерий Михайлович Вы ли это?
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
28.10.2014, 15:10
Цитата Сообщение от Арти7030 Посмотреть сообщение
Валерий Михайлович Вы ли это?

нет естественно. но я обычно так делал, когда было непонятно, что от меня в задании хотят
0
1 / 1 / 3
Регистрация: 27.12.2012
Сообщений: 192
28.10.2014, 15:21  [ТС]
valera_21, как я понял там сервер должен принимать файлы от разных клиентов и не могли бы Вы мне сказать какие данные добавить и куда.
0
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
28.10.2014, 15:47
Цитата Сообщение от Арти7030 Посмотреть сообщение
Доработать программный комплекс из задачи №2 для обеспечения возможности подключения нескольких клиентов одновременно.
Тебе нужно каждый сокет заворачивать в thread, а его уже засовывать в какой нить ThreadPool, после чего основной поток снова ожидает нового клиента.


Цитата Сообщение от Арти7030 Посмотреть сообщение
Помимо отправки сообщения должна быть предусмотрена возможность передачи управляющих воздействий.
Тут я думаю имеются ввиду команды delete, load, upload.
0
76 / 77 / 40
Регистрация: 03.06.2014
Сообщений: 463
28.10.2014, 16:07
Цитата Сообщение от Арти7030 Посмотреть сообщение
Доработать программный комплекс из задачи №2 для обеспечения возможности подключения нескольких клиентов одновременно
http://habrahabr.ru/post/120157/
0
1 / 1 / 3
Регистрация: 27.12.2012
Сообщений: 192
29.10.2014, 12:26  [ТС]
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
using System;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Net.Sockets;
using System.Xml.Serialization;
using System.Text;
 
public class UdpFileClient
{
    //Детали файла
    [Serializable]
    public class FileDetails
    {
        public string FILETYPE = "";
        public long FILESIZE = 0;
    }
    private static FileDetails fileDet;
 
    //Поля, связанные с UdpClient
    private static int localPort = 5002;
    private static UdpClient receivingUdpClient = new UdpClient(localPort);
    private static IPEndPoint RemoteIpEndPoint = null;
 
    private static FileStream fs;
    private static Byte[] receiveBytes = new Byte[0];
 
    [STAThread]
    static void Main(string[] args)
        {
            //Получаем информацию о файле
            GetFileDetails();
            //Получаем файл
            ReceiveFile();
        }
    private static void GetFileDetails()
    {
        try
        {
            Console.WriteLine("----------Ожидание информации о файле----------");
 
            //Получаем информацию о файле
            receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);
            Console.WriteLine("Информация о файле получена");
 
            XmlSerializer fileSerializer = new XmlSerializer(typeof(FileDetails));
            MemoryStream stream1 = new MemoryStream();
 
            //Считываем информацию о файле
            stream1.Write(receiveBytes, 0, receiveBytes.Length);
            stream1.Position = 0;
 
            //Вызываем метод Deserialize
            fileDet = (FileDetails)fileSerializer.Deserialize(stream1);
            Console.WriteLine("Получен файл типа ." + fileDet.FILETYPE +
                "имеющий размер" + fileDet.FILESIZE.ToString() + "байт");
        }
        catch (Exception eR)
        {
            Console.WriteLine(eR.ToString());
        }
    }
    public static void ReceiveFile()
    {
        try
        {
            Console.WriteLine("----------Ожидайте получение файла----------");
            
            //Получаем файл
            receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);
 
            //Преобразуем и отображаем данные
            Console.WriteLine("-----Файл получен-----");
 
            //Создаем временный файл с полученным расширением
            fs = new FileStream("temp." + fileDet.FILETYPE, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
            fs.Write(receiveBytes, 0, receiveBytes.Length);
 
            Console.WriteLine("---Файл сохранен---");
            Console.WriteLine("--Открытие файла--");
 
            //Открываем файл связанной с ним программой
            Process.Start(fs.Name);
        }
        catch (Exception eR)
        {
            Console.WriteLine(eR.ToString());
        }
        finally
        {
            fs.Close();
            receivingUdpClient.Close();
            Console.Read();
        }
    }
}
Народ, кому не сложно сделайте этот сервер многопоточный, чтобы мог принимать файлы от нескольких клиентов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2014, 12:26
Помогаю со студенческими работами здесь

Нажатие нескольких кнопок одновременно
Доброго времени суток. Возникла проблема, экзаменационная игра в консоле. Мне надо одновременно отлавливать нажатие кнопок влево / вправо...

Как реализовать пингование одновременно нескольких хостов
Доброго времени суток. Подскажите пожалуйста, возможно ли организовать пингование нескольких хостов одновременно (наподобие мультипинга),...

Копирование одновременно нескольких картинок: в итоге все одинаковые
Пытаюсь скопировать файлы в нужную папку чтобы потом их запускать. Но проблема в том что, файлы с нужным названием создаются, но...

Как работает изнутри запуск нескольких методов одновременно?
Как работает изнутри запуск нескольких методов одновременно? Точнее, что происходит со стеком? Как ему понятно какие параметры и к чему...

способ воспроизведения одновременно нескольких мп3 файлов не через директикс?
Есть ли какой то способ воспроизведения одновременно нескольких мп3 файлов не через директикс?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru