Страница: 1 | 2 |
Вопрос: Передача данных с одного компьютера на другой
Добавлено: 26.07.10 13:25
Автор вопроса: Uhehesh | Web-сайт:
Привет снова, VBNet.ru!
Взялся я за программирование на C# более серьёзно. :)
Теперь я создаю программу с отправкой данных с одного компьютера на другой (сервер-клиент). Никаких излишеств - достаточно лишь того, чтобы сервер принимал сообщения, отправленные клиентом.
К серверу должен подключиться всего один клиент, этого достаточно.
Я искал примеры в интернете, но ничего нужного мне не нашёл - одни сложные примеры с большим количеством не нужных мне свистелок и...
Если кто знает, где можно найти простой пример на эту тему на VB.net или C# (что желательно) - напишите в эту темку, пожалуйста.
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #1
Добавлено: 26.07.10 13:36
Гугли WCF
Номер ответа: 2
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #2
Добавлено: 26.07.10 13:59
Хм...
Может, попробовать что-то потрадиционней?
А то мне кажется, что это немного не то, что мне нужно.
(Может и то.)
Немного поподробнее:
Мне нужно создать клиент и сервер. Клиент сможет отправлять сообщения серверам, находящимся в онлайне (это не так сложно, у меня уже есть решение). Сервер должен прочитать сообщение и выполнить действие, а также отправить сообщение в ответ.
Я читал на MSDN про сокеты, но так ничего и не понял.
Всё довольно запутанно...
Вот, к примеру, некоторые строки моего кода:
Исключение на третьей строке:
"Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение 127.0.0.1:1024"
Значит, нужно добавить кое-что ещё...
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 26.07.10 14:13
System.Net.Sockets.Socket
System.Net.Soclets.TcpListener + System.Net.Sockets.TcpClient
System.Net.HttpListener + System.Net.WebClient + System.Net.HttpWebRequest
.NET Framework Remoting
WCF
Если на сервере приложение можно захостить в IIS, можно сделать через ASP .NET Web Services, это один из самых простых в реализации вариантов.
Номер ответа: 4
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #4
Добавлено: 26.07.10 15:27
За рекомендацию использования TcpListener и TcpClient - большое спасибо.
Вроде бы, получается.
Номер ответа: 5
Автор ответа:
Alex
Вопросов: 7
Ответов: 73
Профиль | | #5
Добавлено: 26.07.10 17:38
Попробуй:
http://msdn.microsoft.com/en-us/library/w89fhyex.aspx
http://www.canbal.com/index.php?/Using-C-Sharp/msdn-example-of-asynchronous-clientserver-socket.html
Номер ответа: 6
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #6
Добавлено: 26.07.10 18:34
Спасибо, попробую...
А то из-за моей криворукости на этот раз не вышло, может, мне помогут примеры...
Номер ответа: 7
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #7
Добавлено: 27.07.10 16:08
Привет всем.
Это вновь я.
Большое спасибо Alex за подсказку, это действительно помогло.
Но... (я знаю, вы ожидали это слово) у меня никак не получается отправить файл в виде байтов. Каждый раз разная ошибка.
Как мне передать файл в виде байтов?
Номер ответа: 8
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #8
Добавлено: 27.07.10 17:05
Считываешь файл в байтовый массив, передаешь в NetworkStream (или что ты там используешь).
На приемнике принимаешь даныне из NetworkStream, сохраняешь на диск.
Номер ответа: 9
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #9
Добавлено: 27.07.10 17:21
NetworkStream не использую.
Я передавал байты, но что-то ничего не получалось.
Может, где-то есть хороший пример?
Номер ответа: 10
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #10
Добавлено: 27.07.10 20:04
Вот набросал.
Поток клиента считывает файл с диска, отправляет по TCP в поток сервера, он сохраняет файл на диск.
Номер ответа: 11
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #11
Добавлено: 27.07.10 20:33
Скорее, не набросал, а откуда-то взял.
Ну ладно, сейчас попробую...
Номер ответа: 12
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #12
Добавлено: 27.07.10 21:09
О!
Всё работает, спасибо.
Раньше программа каким-то образом портила файлы, сейчас исправно передаёт. Причём не очень медленно, а довольно-таки шустро.
Огромное спасибо Artyom.
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 27.07.10 21:24
за такое,беспочвенное обвинение, можно и в глазурь получить..
Номер ответа: 14
Автор ответа:
Uhehesh
Вопросов: 4
Ответов: 42
Web-сайт:
Профиль | | #14
Добавлено: 27.07.10 21:38
Ого! Столько проектов с одинаковыми именами и похожими экшнами.
Меня забанили в гугле.
Извиняюсь, мне было плохо, поэтому я поленился проверить дальше.
Номер ответа: 15
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #15
Добавлено: 27.07.10 23:06
Скорее, не набросал, а откуда-то взял.
Ничего себе предъява!
Пруфлинк в студию если ты так считаешь.