Я нахожусь в середине обучения Winsock и столкнулся с концептуальной проблемой при получении уведомления о статусе завершения запроса с сервера. Поскольку клиент предназначен только для отправки во время приема сервера, есть ли способ, которым клиент может быть уведомлен? Благодарю.Как клиент может получить уведомление о статусе завершения запроса, отправленного на сервер? -Winsock
ответ
Соединитель на стороне сервера, который используется, когда вы вызываете recv
, также может использоваться для отправки данных. Помните, что структура SOCKET
, которую вы получаете при приеме клиента на сервере, такая же, как структура SOCKET
на стороне клиента, которая используется для подключения. Таким образом, после получения данных от клиента, вы можете отправить ответ, как
send(s, res_str, strlen(res_str), 0);
Где res_str
ваша строка ответа. Технически res_str
имеет размер strlen(res_str) + 1
, но нам не нужен нулевой символ.
Привет, Люк, большое спасибо за вашу помощь. – vincent911001
Если это ответили на ваш вопрос, отметьте его как ответ. Пожалуйста. –
Я не могу понять, спрашиваете ли вы, может ли сервер отправлять данные в ответ на подключенный сокет или хотите ли вы, чтобы сервер каким-то образом инициировал соединение с клиентом после того, как начальное соединение было закрыто? –
'клиент предназначен только для отправки в то время, как сервер получает' Это довольно необычный протокол, о котором мы думаем. В типичном протоколе - скажем, HTTP - клиент инициирует соединение, а затем отправляет запрос, который получает сервер. Затем сервер обрабатывает запрос и отправляет ответ, который получает клиент. –
Привет @LukePark, извините за неопределенный вопрос, ya, я спрашиваю, может ли сервер отправлять данные в ответ на подключенный сокет (клиент)? Спасибо – vincent911001