0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Клиент-сервер21.03.2013, 09:11. Показов 2524. Ответов 20
Метки нет (Все метки)
Всем доброго времени суток. У меня возникла следующая проблема. Я не могу отправить текст из textbox клиента в textbox сервера... Точнее не могу сообразить как это сделать. Сервер запускается и работает, клиент к нему подключается, а вот с отправкой ни как, точнее текст уходит, и в обратную сторону мне приходит сколько символов отправилось, но на сервере это нигде не появляется.
Клиент:
Пробовала так:
Добавлено через 4 часа 52 минуты Я так понимаю это можно сделать через BeginReceive, но не могу сообразить как...
0
|
21.03.2013, 09:11 | |
Ответы с готовыми решениями:
20
Клиент-сервер: Как определить, что клиент отключился? Клиент-серверное приложение: как определить, что сервер/клиент не отвечает в течении определенного времени Клиент-сервер. Клиент не принимает данные Клиент-Сервер. Удалённый сервер |
4 / 4 / 1
Регистрация: 31.05.2011
Сообщений: 52
|
|||||||||||
22.03.2013, 01:25 | 2 | ||||||||||
Интересно. Вы хотите увидеть то, что не выводите нигде. В этом методе на сервере должен быть реализован функционал вывода отправленной информации=)
Посмотрите здесь как получать принятые через сокет данные http://msdn.microsoft.com/ru-r... ocket.aspx
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|||||||||||
22.03.2013, 05:57 [ТС] | 3 | ||||||||||
Это и так понятно, вопрос был в том как реализовать вывод отправленного сообщения... Собственно я понимаю, что оно должно приниматься через
Добавлено через 2 часа 54 минуты Еще пробывала так:
0
|
4 / 4 / 1
Регистрация: 31.05.2011
Сообщений: 52
|
||||||||||||||||
22.03.2013, 17:22 | 4 | |||||||||||||||
Попробуйте так:
Добавлено через 4 минуты И я советую вам разобрать пример который представлен на странице http://msdn.microsoft.com/ru-r... ocket.aspx. Там есть хороший пример реализации отправки и приема большого количества байтов. от вашего отличается тем, что прием осуществляется в цикле.
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
22.03.2013, 18:01 [ТС] | 5 |
Дело в том, что когда я вывожу эту переменную:
usdbuy.text = s; Отправка происходит, но VS при этом ругается, сейчас точно не помню ошибку, вроде что то связанно с использованием переменной не из того места откуда она была вызвана. Завтра напишу поточнее, а то уже спать легла. И еще при таком раскладе у меня клиент после повторной отправки зависает... Т.е. в конструкторе приложение выдает ошибку, а откомпиленное приложение виснет после повторной отправки... пс, я сама пишу свое первое приложение на C# .net поэтому тоже еще многого не знаю а написать очень надо, сроки поджимают...
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
|
22.03.2013, 18:43 | 6 |
мм, Бот, торгующий на бирже? Или просто парсите сайт с курсом валют?
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
22.03.2013, 18:54 [ТС] | 7 |
Спасибо, завтра поверю.
Нет, все намного проще. Табло с курсами валют. Чтобы тети из касы могли менять курсы валют на экран телевизора
0
|
4 / 4 / 1
Регистрация: 31.05.2011
Сообщений: 52
|
||||||
22.03.2013, 19:16 | 8 | |||||
4ukca, так с этой ошибки и нужно было начинать=)
Верно подсказывают, нужно выводить через вот такой код
1
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
23.03.2013, 16:18 [ТС] | 9 |
Ошибка про invoke исчезла, но клиент по прежнему висит после повторной отправки... Я даже сделала разрыз соединения после отправки, потом заного подключаюсь, снова отправляю данные, и клиент повисает Есть какие нибудь мысли по этому поводу?
ПС: Зависает в клиенте на этой строке: int bytes = clienth.Receive(buffer); А при перезапуске клиента, но без перезагрузки сервера, на сервер тоже уже ничего не приходит, пока не перезагрузишь сам сервер. Добавлено через 2 минуты ПС2: Сейчас еще проверила, не закрывая клиент, но перезапустив сервер повторная отправка получилась, соотвественно проблема гдето в серверной части. Добавлено через 4 минуты Вопрос тогда в следующем, как можно после получения данных перезапустить сервер? Добавлено через 1 минуту т.е. как мне снова сделать, чтобы сработала строка private void server_Activated(object sender, EventArgs e)
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
|
23.03.2013, 17:08 | 10 |
Нужно в вечный цикл. Должен ведь слушать постоянно, а не один раз принять соединение при активации.
Добавлено через 11 минут Да и вообще прослушку надо в отдельный поток, иначе GUI просто подвиснет. Мм, хотя нет, у вас и так асинхронно.
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
24.03.2013, 03:45 [ТС] | 11 |
Чего то я не поняла вашего ответа Можно поподробней?
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
||||||
24.03.2013, 09:38 | 12 | |||||
сервер должен слушать постоянно. А у вас принимать только одно соединение и то во время активации.
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
24.03.2013, 14:44 [ТС] | 13 |
Таким вот образом, сервер вообще не запускается, форма тупо черная и сервер висит
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
|
24.03.2013, 14:52 | 14 |
Тогда слегка поменять арх-ру. Написать метод, который начинать слушать соединения. Запустить его в другом потоке, через Thread class, for example. Запустить уже синхронно. То есть весь код Socket.Bind(), Socket.Listen() в отдельный метод.
Добавлено через 2 минуты ".NET - Сетевое программирование для профессионалов."
1
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
24.03.2013, 14:57 [ТС] | 15 |
Сейчас скачаю, почитаем Может чего получится...
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
|
24.03.2013, 15:04 | 16 |
Глава 4, стр. 116 - SocketServer.cs
Вот этот код в отдельный поток засунуть. Добавлено через 6 минут Привязку к endPoint можно в основном потоке оставить. А вот Listen() and Accept() в другой кинуть.
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
25.03.2013, 02:38 [ТС] | 17 |
Уф, с этим я разобралась, просто у меня после получения данных была команда EndAccept и сервер переставал слушать входящие сообщения Просто заново запустила прослушку и все стало ок
Теперь у меня другая проблемка... До этого момента я отправляла текст с одного textbox`а, сейчас мне нужно отправить 8. Но все они запишутся в один буфер. Как мне на сервере разбить буфер и раскидать все по разным textbox`ам?
0
|
17 / 11 / 3
Регистрация: 25.02.2013
Сообщений: 48
|
|
25.03.2013, 06:20 | 18 |
Используйте какой нибудь символ в качестве разделителя.
0
|
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 15
|
|
25.03.2013, 09:06 [ТС] | 19 |
А можно ли сделать так, например с 1 по 5й символ в один текстбокс, с 5-по 10 во второй и т.д.?
0
|
17 / 11 / 3
Регистрация: 25.02.2013
Сообщений: 48
|
|
25.03.2013, 09:08 | 20 |
А если будет больше 5 ти символов, тогда программа будет работать неправильно.
0
|
25.03.2013, 09:08 | |
25.03.2013, 09:08 | |
Помогаю со студенческими работами здесь
20
Клиент и сервер Клиент-сервер Сервер-клиент Клиент - сервер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|