Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> синхронизация приёма и передачи, между сервером и клиентом 
V
    Опции темы
WERITAS
Дата 28.4.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Доброго времени суток.
Как в сокетах можно решить проблему синхронизации передачи и приёма данных  между сервером и клиентом?

На клиенте пробовал делать так:
Код

public void Receive() // принять данные
{
    while (socket.Available == 0) // <-- Ожидание, когда придёт ответ от сервера
    { }
    
    byte[] outBuff = new byte[socket.Available];
    int size = socket.Receive(outBuff);
    
    // Работа с пришедшими данными outBuff;
}


На сервере клиенты обслуживаются след. образом:
Код

private void AcceptConnections(Object ins) // приём подключений
{
    while (true)
    {
        Socket handleSocket = hostSocket.Accept();
        ((IPEndPoint)handleSocket.RemoteEndPoint).Port = ++port;
        lock (connections)
        {
            connections.Add(handleSocket);
        }
    }
}
private void AttendConnections(Object ins) // обслуживание подключений
{
    while (true)
    {
        lock (connections)
        {
            foreach (Socket clSocket in connections)
            {
                if (clSocket.Connected)
                {
                    if (clSocket.Available != 0)
                    {
                        byte[] outBuff = new byte[clSocket.Available];
                        clSocket.Receive(outBuff);

                        // Отправление клиенту данных                        
                    }
                }
                else connections.Remove(clSocket);
             }
         }
     }
}



Это сообщение отредактировал(а) WERITAS - 28.4.2008, 17:48


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
WERITAS
Дата 29.4.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Вопрос решён!  smile 


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
mr.DUDA
Дата 1.5.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



гуру  smile 

не поделитесь рецептиком ?


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.