Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Передача данных между компьютерами.

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Arion



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а можно ли как нибудь с имитировать сеть на одном компьютере  

 
Да ради бога - ставь Vmware Workstation и будет тебе сеть.  
 

Цитата:
В условии задачи не сказано, что сеть ip-шная  

Ну и что, WinSock ориентирован на работу с довольно широким набором протоколов, кроме TCP/IP можно использовать NetBIOS,Appletalk,IPX/SPX и ряд других. См http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/wsasocket_2.asp

Всего записей: 436 | Зарегистр. 29-06-2003 | Отправлено: 11:36 10-01-2004 | Исправлено: Arion, 11:37 10-01-2004
mc

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>mihas83
выбрал сокеты, т.к. про них нашёл немного инфы.
 
http://www.sources.ru/cpp_network.shtml - а здесь я нашёл немного информации и исходников по сети.  

Всего записей: 12 | Зарегистр. 06-12-2003 | Отправлено: 00:22 11-01-2004
NikNikolaich

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа!
 
Хотелось бы узнать, можно ли как-нибудь сделать так, чтоб два (или больше) компьютера общались между собой онлайн через инет? Я имею в виду написать такую прогу, которая бы передавала некоторые данные на другой комп, где соответственно такая же прога получала бы его и отправляла бы ответы?
 
В общих чертах, хотябы, как сделать?
 
Спасибо.

Всего записей: 41 | Зарегистр. 03-05-2006 | Отправлено: 16:28 16-06-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А открой в Делфи примеры инди и посмотри, там есть пример чата.
Или тебе под С?
В общих чертах это делается так. Одна машина создаёт сервреный сокет, другае - клиентский и подключается к серверному. Потом начинается бурный обмен данными, который при синхронных сокетах ничем принципиально не отличается от чтения/записи файов (ну не совсем, но идея такая же).
А что будут передавать и принимать - это как протокол придумаеш

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 16:36 16-06-2006
NikNikolaich

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
Мне в Делфи. А как клиент распознает сервер в сети?

Всего записей: 41 | Зарегистр. 03-05-2006 | Отправлено: 16:48 16-06-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
NikNikolaich
Цитата:
А как клиент распознает сервер в сети?

 
Он должен знать его адрес (айпишник и за надобностью порт)

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 17:27 16-06-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OdesitVadim
Ну можно броадкастом поискать Или через AD.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 10:18 19-06-2006
NikNikolaich

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mickey_from_nsk
Это как?

Всего записей: 41 | Зарегистр. 03-05-2006 | Отправлено: 13:43 19-06-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Оба эти способа не совсем тривиальные, но и высшим пилотажем их не назовешь.
Это делается так.
1 способ - через Broadcast.
Серверный комп сидит на сети и слушает все в свой порт.
Клиентский комп знает только порт сервера (он находится в той же сети или на маршрутизаторе поднят relay для broadcast). Клиентский порт посылает (видимо по UDP) сообщение на broadcast адрес для своей сети. Если не ошибаюсь, Broadcast адрес для сети является адрес со всеми единицами в части не закрываемой маской. Например, для сети  
192.168.1.0 с маской 255.255.255.0 является адрес 192.168.1.255.
Если сервер слушает, ему придет пакет с заполненным полем from. В ответ, по этому полю он может отправить уже направленный пакет обратно. Клиент его получит и в поле from будет написано кто же сервер.
 
2. способ - через динамический DNS, поднимаемый в Active Directory. Так делают все продвинутыве виндовые тулзы. Только я не знаю, есть ли для него API. Просто регистрируешь свой сервер в этом DNS, например как myserv.mycompany.com.
Затем клиент, зная DNS имя сервера (как службы) делает DNS запрос и получает IP для компа.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 14:19 19-06-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mickey_from_nsk
IMHO без выделенного IP так не получится, а если IP выделен - то зачем заморачиваться

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 22:40 21-06-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vshersh

Цитата:
IMHO без выделенного IP так не получится, а если IP выделен - то зачем заморачиваться

Поясни... Ты имеешь в виду, что на DHCP не разрулить? Почему? В чем разница принципиальная?
 
Кроме того, даже выделенные адреса иногда меняются. У нас в конторе за последний год адреса менялись раза три.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 07:23 22-06-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mickey_from_nsk
Сорри, я неверно выразился...
Имел ввиду, что в любом случае известен IP или DNS - проблема решена...
А броадкасты это только для локальных сетей

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 12:00 22-06-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vshersh
Я описывал варианты для локальных сетей когда адрес сервера неизвестен (или самонастраивается). Такое тож бывает. Тот же MS SQL так делает.
Когда делаешь чего-то кластерное или в сети живет DHCP, можно предусмотреть такой механизм. Не всегда на момент установки или настройки клиента известен адрес сервера.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 12:13 22-06-2006
WinSer



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А может ли кто нибуть подсказать как можно решить такую же задачу
Цитата:
 Прога должна сохранить данные в файл и заодно передать эти данные на др. компьютер. Данные представляют собой просто числа/текст. Компы подсоеденены к локальной сети. Второй компьютер должен получить передаваемые данные и выдать результат на экран.

только на Delphi7.

Всего записей: 17 | Зарегистр. 12-01-2007 | Отправлено: 10:34 12-06-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вариантов уйма. айпи машины, куда передать данные, известно?
Тогда компоненты Indy и вперёд.
Если данные систематезированы, тогда можно юзать idTCPServer и idTCPClient.
Если же желающих передать данные будет много, то советую посмотреть в сторону IdHTTPServer и idHTTP.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 11:03 12-06-2007
WinSer



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
IP известно, но должна быть возможность менять его в ходе работы програмы по востребованию.
Прога должна взять інфу c различных компонентов, красиво структурировать (оглавление - информация, оглавление - информация, ... ) все с новой строки, выдать сообщение на другой машине, желательно в таком виде как оно сформировано.
Какой именно Indy нужно использовать? В Delphi есть как минимум 5 закладок Indy и туча компонент, а времени очень в обрез.
 

Всего записей: 17 | Зарегистр. 12-01-2007 | Отправлено: 12:21 12-06-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я вам написал, какие компоненты использовать.
Айпи может задаваться в настройках или искаться бродкастом.  
В демках всё есть (правда для 7 делфи самих демок в папке Demos/indy нет, но там есть текстовый документ, где написано, откудова качать.
Во вторых. За вас никто писать не будет. Помочь - одно. Писать - другое. Понимаю, скорее всего диплом горит, но не вы одни такие.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 13:19 12-06-2007
WinSer



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
искаться бродкастом
как ето? Впервые о таком слишу...  

Всего записей: 17 | Зарегистр. 12-01-2007 | Отправлено: 15:22 12-06-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Передача данных между компьютерами.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru