| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > Передача строк по сети |
| Автор: xbarmaglot 23.5.2013, 20:14 |
| Есть TCP соединение. Для передачи данных использую StreamReader.ReadLine и StreamWriter.WriteLine. Но при передачи данных они могут не все быть переданы. Передаются строки. 1. ReadLine и WriteLine гарантируют ли передачу данных, пока не будет конца строки, чтоб не крутить цикл для передачи всех данных ? При передачи строк они передаются в unicode. Если кодировать в UTF8, то получаю массив байт, который нельзя передать как строку. 2. Можно ли как передать массив байт используя WriteLine? 3. ReadLine возвращает строку. Если по сети идут данные в UTF8, a не unicode, то корректно ли отработает ReadLine ? |
| Автор: jonie 20.6.2013, 09:02 | ||
| в сети нет строк. Есть байты. Их и передавайте в нужной вам кодировке и нужным способом закодированные, например: сначала посылаете int - сколько байт передается, потом собственно байты в указанном количестве. На принимающей стороне собираете строку самостоятельно из полученных байт (да, крутите цикл чтения). Вот как из utf-8 и в utf-8 перегнать строку:
|
| Автор: xbarmaglot 20.6.2013, 09:57 |
| jonie, а разве WriteLine и ReadLine Не будут читать данные, пока не конец завершения строки ? |
| Автор: jonie 20.6.2013, 10:15 |
| А что такое конец строки в сети ? Вы сами должны кодировать сетевые сообщения и сами должны понимать что они из себя представляют. По сети передаются байты - нет там и никогда не было строк. |