struct message {
uint8_t op;
uint8_t id;
- uint16_t reserved;
+ uint8_t seqno;
+ uint8_t reserved;
uint32_t data;
uint8_t buf[2048];
};
}
set_options(rs);
+printf("svr bind af %d type %d prot %d port %d\n", res->ai_family, res->ai_socktype, res->ai_protocol,
+ ((struct sockaddr_in *) res->ai_addr)->sin_port);
ret = rs_bind(rs, res->ai_addr, res->ai_addrlen);
if (ret) {
perror("rbind");
return ret;
}
- ret = rs_recv(rs, msg, size, flags);
+ ret = rs_recv(rs, msg, size, flags | MSG_DONTWAIT);
if (ret < 0 && (errno == EWOULDBLOCK || errno == EAGAIN))
perror("rrecv");
static int client_send_recv(struct message *msg, size_t size)
{
+ static uint8_t seqno;
int ret;
+ msg->seqno = seqno;
do {
ret = client_send(msg, size);
if (ret != size)
return ret;
ret = client_recv(msg, size, 1);
- } while (ret <= 0);
+ } while (ret <= 0 && msg->seqno != seqno);
+ seqno++;
return ret;
}
}
set_options(rs);
+printf("client connect af %d type %d prot %d port %d\n", res->ai_family, res->ai_socktype, res->ai_protocol,
+ ((struct sockaddr_in *) res->ai_addr)->sin_port);
ret = rs_connect(rs, res->ai_addr, res->ai_addrlen);
if (ret) {
perror("rconnect");
if (!custom) {
for (i = 0; i < TEST_CNT; i++) {
init_latency_test(test_size[i]);
+transfer_count = 10;
run_test();
}
for (i = 0; i < TEST_CNT; i++) {
init_bandwidth_test(test_size[i]);
+transfer_count = 10;
run_test();
}
} else {