@@ -33,17 +33,22 @@ namespace netlib {
33
33
std::chrono::milliseconds ms_taken = std::chrono::duration_cast<std::chrono::milliseconds>((end - start));
34
34
if (select_res == 1 )
35
35
{
36
- int32_t so_error = 0 ;
37
- socklen_t len = sizeof (so_error);
38
- getsockopt (sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
39
- if (so_error == 0 ) {
40
- // success
41
- std::cout << " select no error" << std::endl;
42
- return {{}, ms_taken};
43
- }
44
- std::error_condition error_condition = static_cast <std::errc>(so_error);
45
- std::cout << " select ret error" << error_condition.message () << std::endl;
46
- return {static_cast <std::errc>(so_error), ms_taken};
36
+ return {{}, ms_taken};
37
+
38
+
39
+
40
+
41
+ // int32_t so_error = 0;
42
+ // socklen_t len = sizeof(so_error);
43
+ // getsockopt(sock, SOL_SOCKET, SO_ERROR, &so_error, &len);
44
+ // if (so_error == 0) {
45
+ // //success
46
+ // std::cout << "client select no error" << std::endl;
47
+ // return {{}, ms_taken};
48
+ // }
49
+ // std::error_condition error_condition = static_cast<std::errc>(so_error);
50
+ // std::cout << "client select ret error" << error_condition.message() << std::endl;
51
+ // return {static_cast<std::errc>(so_error), ms_taken};
47
52
} else if (select_res == 0 ) {
48
53
// timeout
49
54
std::cout << " select ret 0 timeout" << std::endl;
@@ -134,6 +139,8 @@ namespace netlib {
134
139
}, data, timeout);
135
140
}
136
141
inline std::pair<std::size_t , std::error_condition> send (const std::vector<uint8_t > &data, std::optional<std::chrono::milliseconds> timeout) {
142
+
143
+ std::cout << " client send: " << data.size () << std::endl;
137
144
if (!is_connected ()) {
138
145
return {0 , std::errc::not_connected};
139
146
}
@@ -167,31 +174,30 @@ namespace netlib {
167
174
return {{}, std::errc::not_connected};
168
175
}
169
176
170
- std::cout << " Ping0" << std::endl;
171
177
if (timeout.has_value () && timeout->count () < 0 ) {
172
- std::cout << " Timeout returned" << std::endl;
178
+ std::cout << " client recv timeout returned" << std::endl;
173
179
return {{}, std::errc::timed_out};
174
180
}
175
181
176
182
auto wait_res = wait_for_operation (_socket.value ().get_raw ().value (), OperationClass::read, timeout.value ());
177
183
if (wait_res.first ) {
178
- std::cout << " select timeout returned" << std::endl;
184
+ std::cout << " client recv select timeout returned" << std::endl;
179
185
return {{}, wait_res.first };
180
186
}
181
187
182
- std::cout << " Ping1 " << std::endl;
188
+ std::cout << " client recv after wait " << std::endl;
183
189
184
190
std::vector<uint8_t > data (byte_count, 0 );
185
- ssize_t recv_res = ::recv (_socket.value ().get_raw ().value (), data.data (), byte_count, 0 );
191
+ ssize_t recv_res = ::recv (_socket.value ().get_raw ().value (), data.data (), byte_count, MSG_WAITALL );
186
192
if (recv_res > 0 ) {
187
- std::cout << " Ping2 " << std::endl;
193
+ std::cout << " client recv " << recv_res << std::endl;
188
194
data.resize (recv_res);
189
195
return {data, {}};
190
196
} else if (recv_res == 0 ){
191
- std::cout << " Ping3 " << std::endl;
197
+ std::cout << " client recv 0 " << std::endl;
192
198
return {{}, std::errc::connection_aborted};
193
199
}
194
- std::cout << " Ping4 " << std::endl;
200
+ std::cout << " client recv error: " << recv_res << " : " << socket_get_last_error (). message () << std::endl;
195
201
return {{}, socket_get_last_error ()};
196
202
}
197
203
0 commit comments