Привет Есть ли способ подключения к компьютерам через Dial Modem без Интернета? Как окна Hyper терминал. соединение между передачами между компьютерами. Простое соединение между двумя компьютерами Непосредственно и отправка FIle.Связь между двумя компьютерами с помощью модемного набора без Интернета в C#
ответ
Да.
Предполагая, что модемы подключены через последовательный порт (или эмулируют подключение через последовательный порт): вам понадобится один модем (узнайте свои команды AT
!), Чтобы слушать и отвечать на входящие вызовы, а другой для набора первого.
Затем вы можете рассматривать пару как довольно длинную последовательную ссылку.
Однако получить все, чтобы работать надёжно, является скорее искусством, чем наукой, и тем, что так редко делается сегодня, что большая часть его забыта. Последний раз, когда я работал с модемами таким образом, было более пятнадцати лет назад.
спасибо. Я знаю, что это старый метод. но я должен использовать этот метод. спасибо за ваш очень полезный ответ. так что я узнал AT Commands о создании соединения между двумя компьютерами? существует ли какой-либо выбор? – Shahin
@shaddhin: Википедия выглядит как хорошее введение: http://en.wikipedia.org/wiki/Hayes_command_set. В Интернете должно быть больше информации, но вам придется искать. – Richard
Итак, это означает, что вы действительно можете совершать бесплатные звонки через Интернет с помощью сим-карты, если знаете, что делаете? –
Кто-то написал реализацию XModem в C# здесь: http://trackday.cc/b2evo/blog2.php/2007/08/02/net-xmodem Это может помочь с тем, что вам нужно.
То, как мы это делали в прежние времена, было связано с нуль-модемом. Раньше мы даже делали «сетевые» игры в тот же день.
Это базовый кабель RS-232 с перемычками для приема и передачи. Я все еще вижу некоторые адаптеры, поэтому не должно быть слишком сложно их схватить.
Значительно позже некоторые люди создали SLIP (последовательная линия IP), чтобы включить последовательную линию в качестве несущей для всего стека TCP/IP. Чуть позже PPP был представлен как усовершенствование. Я думаю, что SLIP по-прежнему доступен для большинства платформ, и PPP существует на каждой платформе, которая может делать коммутируемый доступ в Интернет.
Итак, если вопрос в основном сводится к тому, желая соединить два компьютера через PPP, не выходя через кого-либо коммутируемые сервера (например, Earthlink), что вам нужно, чтобы установить сервер PPP на одной из двух машин , Они поставляются с большинством дистрибутивов Linux. Для Windows вам придется искать. Я бы помог, но мой корпоративный блокиратор снова переоценен.
Вы должны использовать нуль-модемный кабель для прямого подключения к последовательным портам DTE назад (или двум DCE), но не использующим модемы. – Richard
@ Рихард, это была своего рода точка. Если компьютеры расположены совместно, вам не нужны модемы. Модемы были созданы для того, чтобы телефонные линии могли работать на междугородних последовательных линиях. –
Соединение между двумя компьютерами с использованием модема без Интернета требует телефонного кабеля или кабеля RS-232?!Мне жаль из-за моей плохой информации об этом. – Shahin
Вы можете легко настроить коммутируемые сетевые подключения в Windows, для которых требуется использование модема (его можно настроить VPN, но вы можете установить его только для набора номера).
Таким образом, я бы предположил, что вы можете сопоставить сетевое местоположение с ним для использования вашим кодом C#.
Как уже говорилось, как минимум один из модемов должен быть включен и прослушивать соединение.
* редактировать *
Я считаю, что следующий код вызовет модемное соединение, занесенные в Сетевые подключения
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(@"c:\Local Area Connection 2 - Shortcut");
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
Для ссылки помещенной в C: \ диск и именованных «Подключение по локальной сети 2 - Ярлык»
Затем вы можете прослушивать пункт назначения, чтобы узнать, подключено ли оно.
В конечном счете, хотя я считаю, что лучшим решением может быть использование RAS.
Посмотрите здесь Codeplex: DotRAS
Вы можете использовать следующий код:
RasDialer dialer = new RasDialer();
bool connected = false;
foreach (RasConnection connection in dialer.GetActiveConnections())
{
if (connection.EntryName == "MyFriendsPC")
{
connected = true;
break;
}
}
if (!connected) {
dialer.EntryName = "MyFriendsPC";
dialer.Dial();
// If you need to provide credentials, use the Dial(NetworkCredential) overload that's available.
}
В этом примере предполагается, что у вас уже есть запись с именем MyFriendsPC в телефонной книге по умолчанию в. Если вам не нужно и нужно создавать это соединение программно, для этого вы можете использовать компонент RasPhoneBook.
RasPhoneBook pbk = new RasPhoneBook();
pbk.Open(); // This will open the phone book in the All Users profile.
RasEntry entry = new RasEntry("MyFriendsPC");
Если вы не хотите использовать параметры по умолчанию для подключения вы можете использовать один из статических методов класса RasEntry или вручную настроить соединение здесь.
pbk.Entries.Add(entry);
Как только запись была добавлена в коллекцию, она будет немедленно добавлена в телефонную книгу.
спасибо. поэтому мне нужно создать соединение между двумя компьютерами? это лучше, потому что я не участвую в AT Commands. все, что вы сказали, доступно с помощью кодов C#? я хочу и автоматический процесс. например, компьютер стартового набора и компьютер 2, автоответчик. – Shahin
Расширение ввода и отображение использования RAS с использованием кодового набора DotRAS. – ChrisBD
Использование DotRas в этом сценарии может работать, однако вам нужно что-то, что может отвечать и маршрутизировать вызовы на другом конце. Windows RRAS на своих серверных операционных системах справится с этим (я считаю, никогда не настраивал соединение по коммутируемому соединению раньше) для вас после настройки. Если бы это был я, я бы, вероятно, получил VPN-сервер в удаленной сети и получил доступ к нему таким образом, плюс ему не потребовалась бы телефонная линия. –
Одно из вопросов, которые неясно из вашего вопроса, заключается в том, пытаетесь ли вы напрямую подключить две машины в одном и том же физическом местоположении с помощью кабеля или если вы пытаетесь подключиться к одному из другого через PSTN.
Если они находятся в одном и том же месте, устраните модем из уравнения. Это значительно снижает сложность.
Если они находятся в разных местах (т. Е. Набирают телефонное соединение с честным соединением), there is some code here, что может вам помочь. В статье рассказывается о модеме Bluetooth или GPRS, но суть его в том, что он отправляет AT-команды, которые могут использоваться для связи с любым совместимым с AT-командой устройством. Это может заставить вас идти в правильном направлении.
Update
См http://msdn2.microsoft.com/en-us/system.io.ports.serialport(VS.80).aspx
Поскольку модем должен быть подключен к COM-порту (COM1-COM12), даже это внутренний модем, вы должны быть в состоянии использовать SerialPort платформы .NET в класс, чтобы открыть порт, отправьте команды AT и т. д. После того, как вы открыли соединение, вы можете использовать библиотеку XModem для передачи файлов или прямой последовательный интерфейс для регулярной связи.
Вам нужен IP-стек, или вы довольны прямым последовательным протоколом?
@shaddhin: Не могли бы вы расширить это: (1) подтвердить, что хотите подключиться по телефонным линиям, (2) какую связь вы хотите: подключение к сети IP или что-то более примитивное? (3) Какие ОС (ы) будут использоваться? – Richard
@ Рихард: Конечно 1) Да. 2) нет разницы только в соединении между двумя компьютерами по телефонным линиям с помощью модемного модема. 3) Windows xp – Shahin