464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
1 | |
Класс Socket05.12.2010, 03:24. Показов 2147. Ответов 10
Метки нет (Все метки)
Здравствуйте! Подскажите, если я, используя класс Socket, например, сначала отправлю '12', потом сразу же '56', не получится ли, что на другой сторону придут данные '1256' в одном вызове метода чтения? Данные как то изолируются или стоят во входящей очереди все подряд?
0
|
05.12.2010, 03:24 | |
Ответы с готовыми решениями:
10
Использование прокси при соединении с сервером по TCP. Класс Socket Socket C# Only one usage of each socket... WebBrowser и JS socket |
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
05.12.2010, 04:22 | 2 |
если отправлены подряд то придут сплошным куском, если задержка приличная(ну 20-30мс хотя бы) то можно отдельными блоками получить
0
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
05.12.2010, 15:12 [ТС] | 3 |
Не думал, что это зависит от времени. Я передаю информацию о файлах и так не хочется передавать размер передаваемых данных, потом сами данные. Неужели нет никакого способа отправлять не боясь, что на другой стороне данные придут одним куском?
0
|
139 / 137 / 21
Регистрация: 26.01.2010
Сообщений: 350
|
||||||
05.12.2010, 16:23 | 4 | |||||
Не знаю, то ли это, о чём ты говоришь, но я в своё время делал так:
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
05.12.2010, 20:34 [ТС] | 5 |
То, но это ничего не дает ответ на вопрос. Чувствую, придется по старинке
0
|
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
|
||||||
05.12.2010, 22:34 | 6 | |||||
Отправляйте структуру:
1
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|
06.12.2010, 09:35 | 7 |
Не знаю, правильно ли я понял задание, но может ввести символ окончания сообщения, то есть например на стороне отправляющей стороны к сообщению добавлять, скажем, знак перевода строки, а принимающая сторона проверяет, если этот знак завершает сообщение, то данные выводятся, а следующие принятые данные будут выведены отдельно.
1
|
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
|
06.12.2010, 09:43 | 8 |
при таком методе отправки вы всегда получите склеенный результат
так что для того чтобы получить два разных числа сервер в начале должен ответить, что получил первое число, а уж затем клиент должен прислать второе... или пользуйтесь, как было сказано выше, передачей пакета содержащего всё...
1
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
06.12.2010, 15:02 [ТС] | 9 |
AlexDios, данный способ неплох, если передавать, например, текст, который набран с клавиатуры. Где уверены, что какой-то символ точно не попадется. Но если я буду, например, передавать данные с файла, то там абсолютно рэндомный набор символов.
Добавлено через 3 минуты kuroiryuu, честно говоря, не совсем понял что делается в коде с пакетом. Если я сериализирую структуру - она ничем не будет отличаться от обычного массива байт. И мы возвращаемся к той же проблеме...
0
|
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
|
|||||||||||
07.12.2010, 00:04 | 10 | ||||||||||
отправляйте Си'шную строку, с нулевым символом в конце:
2
|
464 / 341 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
07.12.2010, 03:10 [ТС] | 11 |
Но это опять же это подойдет если я пересылаю текст. Не иначе.
0
|
07.12.2010, 03:10 | |
07.12.2010, 03:10 | |
Помогаю со студенческими работами здесь
11
Socket подключения c# Socket + Proxy raw socket Socket Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |