Как получить текст в клиентском приложении, работающем в сети в VB.NET
Я пытаюсь разработать LAN messenger с использованием TCP/IP в vb.net-да. На данный момент я хотел, чтобы приложение получало статус клиента, установленный клиентом, скажем, в автономном режиме, когда ip-адрес клиента вводится в текстовое поле ip. Кажется, у меня ничего не получается. Помощь будет оценена по достоинству или подсказка о том, как это сделать.
Спасибо
Что я уже пробовал:
Я пробовал предложения из многих статей в интернете, но безрезультатно
Richard MacCutchan
Как и где клиент устанавливает значение состояния и как ваше приложение будет его считывать?
Member 12530907
Клиент устанавливает свое значение статуса в своей форме, выбрав его из выпадающего списка, а затем он появляется в поле statustextbox. Теперь, когда приемник вводит ip-адрес клиентов, он показывает статус клиента в clientstatustextbox. То есть идеи пожалуйста
Richard MacCutchan
Это будет работать только в том случае, если сервер может видеть сообщение о состоянии. А без некоторого обмена сообщениями TCP/IP между клиентом и сервером это невозможно.
CPallini
Ну, статус "оффлайн" может быть исключением. Сервер может вывести автономный статус клиента. Во всех остальных случаях вы совершенно правы.
Richard MacCutchan
Правда. Но что именно означает "оффлайн"?
Member 12530907
"оффлайн", потому что, скажем, если клиент хочет появиться в автономном режиме, он выбирает "оффлайн". другие включенные статусы - "занято","Не беспокоить","доступно".
Richard MacCutchan
Все это очень интересно. Но проблема остается прежней: вам нужно клиентское приложение, которое будет отправлять эту информацию о состоянии на ваш сервер.
Member 12530907
в порядке.. я займусь этим исследованием.. Большое спасибо
Richard MacCutchan
Google для "сокетов vb.net-и вы найдете множество образцов.
Richard MacCutchan
Это послание предназначалось не мне.
[no name]
1. Используйте TCP
2. Создать простой протокол, чтобы позволить каждом конце, чтобы общаться в том же порядке
Doug- VisualBasic VB.NET
Если я правильно понял ваш вопрос, вы работаете над одноранговым чатом. Централизованная система была бы проще, однако способ сделать это состоял бы в том, чтобы добавить (у меня есть свой предыдущий) код типа сообщения к вашей строке данных между клиентами.
Пример: если вы в настоящее время используете что-то вроде TCP.send("сообщение чата"), вам придется добавить процедуру для добавления и проверки кода по прибытии.
dim MSG as string = "сообщение чата"
DIM TYP as string = "1"= сообщение чата --- "2" = запрос статуса --- 21 = статус доступен - 22 = статус не беспокоить
В запросе статуса MSG может быть "" как в запросе, так и в ответе.
Dim полезная нагрузка в виде строки = TYP + "|" + MSG
ПТС.ОТПРАВИТЬ (ГРУЗОПОДЪЕМНОСТЬ)
Назначьте входящие данные массиву с помощью функции split
проверьте тип, если запрос состояния отправляет обратный код для текущего состояния
если сообщение чата отображается в локальном клиенте
Значения, которые я использовал, являются только примерами, они могут быть закодированы буквами или любыми цифрами, которые вы хотите. До тех пор, пока каждый клиент понимает все коды для отправки и получения (и что с ними делать.
Поэтому, когда пользователь вводит IP-адрес, система отправляет код запроса статуса и получает обратно текущий статус.
Используя централизованный сервер (подойдет любой компьютер), вы можете заставить его делать статус в реальном времени.
Для связи, которую я использую, я основал ее на Winsock_Orcas (доступно на этом сайте)
Есть хороший чат-сервер и пример клиента с ним, нужно только построить кодирование статуса.
Дайте мне знать, если вам понадобятся дальнейшие разъяснения.