crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Вопросы по сокетам., Чтение/Запись в сокет..
defnull
  опции профиля:
сообщение 18.5.2008, 19:19
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Добрый день.
Имеется сервер, при подключении к которому клиента создаётся поток, который обрабатывает некоторые данные полученные от клиента, при этом информируя клиента о ходе выполнения. Требуется сделать так чтобы клиент мог влиять на ход выполнения.

Проблема для меня заключается в том что я не совсем понимаю можно ли одновременно и читать и писать в сокет. Если я запишу информацию в сокет (клиент), что я получу при попытке прочитать от-туда (тотже клиент)? данные которые мне возможно отправил сервер или то что я отправил?? Иными словами является ли сокет своеобразным общим буфером, или сокет это эдакий двунаправленный буфер?

Естественно всё это можно было бы проверить на практике, но хотелось бы понять, прежде чем бежать набивать шишки. Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.5.2008, 23:41
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Я с сетевыми вещами не знаком, но в руководстве Модуль QtNetwork
написано что "QTcpSocket работает асинхронно...", читай руководство.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 19.5.2008, 7:52
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Буферы разные, для отправки и приема. Так что можешь писать. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.5.2008, 8:18
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Litkevich Yuriy @ 19.5.2008, 3:41) *
работает асинхронно...
Цитата(ViGOur @ 19.5.2008, 11:52) *
Буферы разные, для отправки и приема.

Для меня эти высказывания стали синонимами, и я думаю, это справедливо для любых коммуникационных систем.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 20.5.2008, 15:54
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Спасибо!!!=) Логикой понимал, но лучше знать наверняка, чем потом переделывать...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 30.5.2008, 14:37
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 19.5.2008, 9:18) *
Цитата(Litkevich Yuriy @ 19.5.2008, 3:41) *
работает асинхронно...
Цитата(ViGOur @ 19.5.2008, 11:52) *
Буферы разные, для отправки и приема.

Для меня эти высказывания стали синонимами, и я думаю, это справедливо для любых коммуникационных систем.

Может коечно чего не допонмаю но с какго перепуга это синонимы ??? Это я к вопросу о потоках... Синхронный сокет блокирует выполнение основного потока, а асинхронный - нет и работает в отдельном потоке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.5.2008, 14:52
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


под асинхронностью я понимаю возможность одновременной работы приемника и передатчика, а под синхронной только поочередно.
И помоему в этом плане ничего не изменяется при наличии потокв/прерываний
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
flankerr
  опции профиля:
сообщение 30.5.2008, 15:00
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 30.5.2008, 15:52) *
под асинхронностью я понимаю возможность одновременной работы приемника и передатчика, а под синхронной только поочередно.
И помоему в этом плане ничего не изменяется при наличии потокв/прерываний

Как ты это понимаешь я понял - извини за туфтологию. И это называетя НЕ синхронизацией а Фуллдуплекс (одновременно в обе стороны) или полудуплекс(или туда или сюда). А вот синхоранизация это всёже блокировка вызывающего потока.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 30.5.2008, 15:02
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(flankerr @ 30.5.2008, 16:00) *
А вот синхоранизация это всёже блокировка вызывающего потока.
:yes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 30.5.2008, 15:09
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ну применительно к сокетам, видимо да, я с ними не работал.
Просто когда у тебя нет понятия поток, а есть прервание, т.е. ты работаешь на низком уровне, то это назвается так как я написал, например при работе с COM-портами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 14:57