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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сетевой клиент и сервер, Просто передать текст 
:(
    Опции темы
DenageS
Дата 4.3.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

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



Здравствуйте.
Прошу подсказать мне как сделать 2 программы:
одна принимает текст, другая передает.
Т.е. на одном компе нажал отправить, на другом в программе появляется этот текст.
PM MAIL ICQ   Вверх
Dexx
Дата 4.3.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 13.6.2005

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



Вот смотри.

Присоединённый файл ( Кол-во скачиваний: 45 )
Присоединённый файл  WinsockExperiment1.rar 2,73 Kb


--------------------

PM   Вверх
Kirill89
Дата 4.3.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



Изучай.  smile

Добавлено @ 20:48 
ЗЫ: тут 2 в одном и клиент и сервер по желанию.

Присоединённый файл ( Кол-во скачиваний: 49 )
Присоединённый файл  nettest.rar 6,89 Kb


--------------------
PM MAIL WWW   Вверх
DenageS
Дата 7.3.2007, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

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



Спасибо Вам большое!!!
PM MAIL ICQ   Вверх
DenageS
Дата 7.3.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

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



Появилась проблема.
У меня числа должны отправляться каждые 10 миллисекунд, однако
 1. они не успевают обрабатываться даже при 100мб/с =(
2. Цифры залазиют одни в другие.
Т.е. должно придти сначала 1, потом 2, 3 и тд.
А они приходят 12, 34, 56 
Как можно от этого избавиться?

Это сообщение отредактировал(а) DenageS - 7.3.2007, 16:47
PM MAIL ICQ   Вверх
AntonSaburov
Дата 7.3.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Цитата(DenageS @  7.3.2007,  16:44 Найти цитируемый пост)
они не успевают обрабатываться даже при 100мб/с

Проблема в том, что TCP/IP не предоставляет достаточно постоянной скорости доставки пакетов. Особенно это проблемно в нагруженной сети или при проходе пакетов через маршрутизатор.

Можно посоветовать использовать COM-порт - тут гарантия лучше. Но как я понимаю сие невозможно.

Цитата(DenageS @  7.3.2007,  16:44 Найти цитируемый пост)
А они приходят 12, 34, 56 
Как можно от этого избавиться?

Добавить к просто числам еще и ID который постепенно увеличивается. И тогда будет понятно, что раньше, а что позже.


PM MAIL WWW ICQ   Вверх
Kirill89
Дата 7.3.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



Цитата(DenageS @  7.3.2007,  16:44 Найти цитируемый пост)
У меня числа должны отправляться каждые 10 миллисекунд, однако
 1. они не успевают обрабатываться даже при 100мб/с =(

Это очень странно... Можно перед посылкой пропинговать сеть несколько раз (чем больше, тем точнее будет) и посмотреть среднее время отклика между пакетами, потом задать это значение на скорость пересылки. Только незабуть поставить размер пакетов равный размеру памяти твоей переменной. И поменяй с Integer на Byte, мне кажется это повлияет. 
Или тебе нужно фиксированное значение на скорость?

И, кстати, если ты эти числа сгруппируешь в одну переменную, скажем в string, то они точно нормально дойдут.

Это сообщение отредактировал(а) Kirill89 - 7.3.2007, 20:33


--------------------
PM MAIL WWW   Вверх
DenageS
Дата 8.3.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

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



Еще раз спасибо.
Мне кажется более простой и рациональный способ:

Цитата

... эти числа сгруппируешь в одну переменную, скажем в string, то они точно нормально дойдут.

 И поменяй с Integer на Byte, мне кажется это повлияет. 


Хотя опять же кто гарантирует, что эта переменная не влезет в предыдущую.

Поэтому придется делть еще
Цитата

Добавить к просто числам еще и ID который постепенно увеличивается. И тогда будет понятно, что раньше, а что позже.


Цитата

Особенно это проблемно в нагруженной сети или при проходе пакетов через маршрутизатор.

 Все идет через свич.
PM MAIL ICQ   Вверх
Kirill89
Дата 8.3.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



Цитата(DenageS @  8.3.2007,  08:47 Найти цитируемый пост)
Хотя опять же кто гарантирует, что эта переменная не влезет в предыдущую.

Если группа переменных будет домтаточно большой, ты можно будет отправлять её достаточно редко, что исключит возможность сбоя передачи/приема.


--------------------
PM MAIL WWW   Вверх
AntonSaburov
Дата 9.3.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Вообще - если числа приходят в разнобой у меня ощущение, что для каждой передачи делается отдельный коннект - так это ?
Потому как если использовать один коннект по TCP - не должны они налезать друг на друга - по протоколу сие невозможно.
Хотелось бы узнать реализацию подробнее.
PM MAIL WWW ICQ   Вверх
DenageS
Дата 21.3.2007, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

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



Да так, однако должна быть задержка между коннектом и отправкой сообщения, иначе ошибка.
 Появился еще вопросик. Если ко мне требуется подключить неизвестное количество клиентов, то как поступать?
PM MAIL ICQ   Вверх
Kirill89
Дата 21.3.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



Цитата(AntonSaburov @  9.3.2007,  13:57 Найти цитируемый пост)
Вообще - если числа приходят в разнобой у меня ощущение, что для каждой передачи делается отдельный коннект - так это ?
Потому как если использовать один коннект по TCP - не должны они налезать друг на друга - по протоколу сие невозможно.
Хотелось бы узнать реализацию подробнее. 

Так по определению ip/tcp протокол не поддерживает постоянного приема/передачи данных (постоянного подключения). Этот протокол принимает/отправляет пакеты а в ответ на них приходят биты паритета в значении true/false. Каждая посылка - одно соединение, и если отправить длинную посылку, то пока показатели тактового генератора и бита паритета не будут true, посылка пакета будет повторяться.
Или я ошибаюсь?


--------------------
PM MAIL WWW   Вверх
manson
  Дата 21.5.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.5.2007

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



У меня возникло несколько вопросов; возможно, они покажутся глупыми, так как я новичок в программировании. Прошу отвечать подробнее. Заранее спасибо! smile 
1. Я уже понял, как передавать и получать данные типа «String». А можно ли отсылать массивы, изображения и звук? Если можно то, каким образом?
2. Допустим, на стороне сервера создано несколько переменных, а клиент поэтапно пересылает числовые и строковые данные. Как сделать так, чтобы сервер присваивал очередное значение соответствующей переменной?
3. Как обеспечить работу сервера с несколькими клиентами? 
*если я разместил свои вопросы не в той теме, то приношу свои извенения!  smile 
PM MAIL   Вверх
DenageS
Дата 21.5.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 29.9.2006

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



Я тоже новичек.
Но есть несколько предположений:
1. Наверное надо передавать побайтово..
2. Например нам надо засунуть какую-то инфу в переменную strA. Клиент отпраляет пакет с первым символом например "a", а после этого символа собственно данные. Сервер анализирует первый символ пришедшей информации, если он оказывается равен значению "a", то засовываем его в переменную strA. И т.д.
3. Я просто нужное количество конторолов winsock.

PM MAIL ICQ   Вверх
Kirill89
Дата 21.5.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 4



Цитата(manson @  21.5.2007,  12:46 Найти цитируемый пост)
У меня возникло несколько вопросов; возможно, они покажутся глупыми, так как я новичок в программировании. Прошу отвечать подробнее. Заранее спасибо!  
1. Я уже понял, как передавать и получать данные типа «String». А можно ли отсылать массивы, изображения и звук? Если можно то, каким образом?
2. Допустим, на стороне сервера создано несколько переменных, а клиент поэтапно пересылает числовые и строковые данные. Как сделать так, чтобы сервер присваивал очередное значение соответствующей переменной?
3. Как обеспечить работу сервера с несколькими клиентами? 
*если я разместил свои вопросы не в той теме, то приношу свои извенения!    

1) помести содержимое файла в переменную типа string и передай её. Массивы проще всего писать в srting с разделением
a(0)=123
a(1)=456
a(2)=789
str=#123#456#789#
а потом клиентом всё это резать на куски (так я обычно делаю, возможно есть более удобные варианты)
3) Создать несколько WinSock. Или постоянно переподключаться.

Это сообщение отредактировал(а) Kirill89 - 21.5.2007, 21:04


--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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