Открытие сокета через соединение RS232 - PullRequest
3 голосов
/ 15 июня 2009

У меня есть программа 'C # server', которая прослушивает '127.0.0.1', порт 5500, используя сокет .NET, и у меня есть соответствующая клиентская программа C #, отправляющая сообщения в этот сокет с того же ПК. Они оба работают нормально.

Теперь, если я запускаю программы «клиент» и «сервер» на отдельных ПК и подключаю их через кабель, соединяющий их последовательные порты (RS232), должен ли я внести изменения в код, чтобы они работали? Я спрашиваю, поскольку у меня нет 2 компьютеров для проверки, но мне нужно, чтобы они работали при развертывании.

Спасибо.

Ответы [ 4 ]

7 голосов
/ 15 июня 2009

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

В противном случае вам придется использовать класс SerialPort. явно говорить через последовательный порт.

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

1 голос
/ 15 июня 2009

Если сервер связан с 127.0.0.1, тогда да, вам нужно установить его на 0.0.0.0

Причина в том, что если сокет привязан к IP-адресу, он будет принимать запросы только на этот IP-адрес. 127.0.0.1 используется только в качестве IP-адреса машины, если инициатор находится на той же машине (это отдельный сетевой интерфейс, настроенный как шлейф). 0.0.0.0 означает «любой IP-адрес», поэтому вы можете открыть сокет, который будет принимать входящие соединения от любого сетевого интерфейса на машине.

Что касается его запуска по последовательному кабелю ... не знаю, сработает ли это или нет, и, скорее всего, для этого потребуется много настроек.

0 голосов
/ 15 сентября 2010

TCP / IP также работает через SLIP. Помните тот старый способ подключения к Интернету? ППС будет работать так же хорошо. Но я не думаю, что это то, что он ищет.

0 голосов
/ 15 июня 2009

Вам будет очень больно, если вы продолжите идти по этому пути: -)

TCP / IP обычно работает через Ethernet - я никогда не видел драйвера, который запускал бы физический уровень на последовательных портах RS232, хотя это ни в коем случае не невозможно.

Вам лучше подключить эти две машины с помощью стандартного сетевого кабеля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...