mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
Refine zero copy research
This commit is contained in:
parent
2e9a561acf
commit
8f9cc38f68
2 changed files with 28 additions and 18 deletions
|
@ -9,13 +9,18 @@
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
if (argc < 3) {
|
if (argc < 4) {
|
||||||
printf("Usage: %s <host> <port>\n", argv[0]);
|
printf("Usage: %s <host> <port> <pong>\n", argv[0]);
|
||||||
printf("For example:\n");
|
printf("For example:\n");
|
||||||
printf(" %s 127.0.0.1 8000\n", argv[0]);
|
printf(" %s 127.0.0.1 8000 true\n", argv[0]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int port = atoi(argv[2]);
|
||||||
|
char* host = argv[1];
|
||||||
|
bool pong = !strcmp(argv[3], "pong");
|
||||||
|
printf("Server listen %s:%d, pong %d\n", host, port, pong);
|
||||||
|
|
||||||
assert(!st_set_eventsys(ST_EVENTSYS_ALT));
|
assert(!st_set_eventsys(ST_EVENTSYS_ALT));
|
||||||
assert(!st_init());
|
assert(!st_init());
|
||||||
|
|
||||||
|
@ -28,8 +33,6 @@ int main(int argc, char** argv)
|
||||||
sockaddr_in peer;
|
sockaddr_in peer;
|
||||||
memset(&peer, 0, sizeof(sockaddr_in));
|
memset(&peer, 0, sizeof(sockaddr_in));
|
||||||
|
|
||||||
int port = atoi(argv[2]);
|
|
||||||
char* host = argv[1];
|
|
||||||
peer.sin_family = AF_INET;
|
peer.sin_family = AF_INET;
|
||||||
peer.sin_port = htons(port);
|
peer.sin_port = htons(port);
|
||||||
peer.sin_addr.s_addr = inet_addr(host);
|
peer.sin_addr.s_addr = inet_addr(host);
|
||||||
|
@ -52,10 +55,12 @@ int main(int argc, char** argv)
|
||||||
int r0 = st_sendmsg(stfd, &msg, 0, ST_UTIME_NO_TIMEOUT);
|
int r0 = st_sendmsg(stfd, &msg, 0, ST_UTIME_NO_TIMEOUT);
|
||||||
printf("Ping %s:%d %d bytes, r0=%d, %s\n", host, port, iov.iov_len, r0, msg.msg_iov->iov_base);
|
printf("Ping %s:%d %d bytes, r0=%d, %s\n", host, port, iov.iov_len, r0, msg.msg_iov->iov_base);
|
||||||
|
|
||||||
r0 = st_recvmsg(stfd, &msg, 0, ST_UTIME_NO_TIMEOUT);
|
if (pong) {
|
||||||
assert(r0 > 0);
|
r0 = st_recvmsg(stfd, &msg, 0, ST_UTIME_NO_TIMEOUT);
|
||||||
printf("Pong %s:%d %d bytes, flags %#x, %s\n", inet_ntoa(peer.sin_addr), ntohs(peer.sin_port), r0,
|
assert(r0 > 0);
|
||||||
msg.msg_flags, msg.msg_iov->iov_base);
|
printf("Pong %s:%d %d bytes, flags %#x, %s\n", inet_ntoa(peer.sin_addr), ntohs(peer.sin_port), r0,
|
||||||
|
msg.msg_flags, msg.msg_iov->iov_base);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,13 +9,18 @@
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
if (argc < 3) {
|
if (argc < 4) {
|
||||||
printf("Usage: %s <host> <port>\n", argv[0]);
|
printf("Usage: %s <host> <port> <pong>\n", argv[0]);
|
||||||
printf("For example:\n");
|
printf("For example:\n");
|
||||||
printf(" %s 0.0.0.0 8000\n", argv[0]);
|
printf(" %s 0.0.0.0 8000 true\n", argv[0]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int port = atoi(argv[2]);
|
||||||
|
char* host = argv[1];
|
||||||
|
bool pong = !strcmp(argv[3], "pong");
|
||||||
|
printf("Server listen %s:%d, pong %d\n", host, port, pong);
|
||||||
|
|
||||||
assert(!st_set_eventsys(ST_EVENTSYS_ALT));
|
assert(!st_set_eventsys(ST_EVENTSYS_ALT));
|
||||||
assert(!st_init());
|
assert(!st_init());
|
||||||
|
|
||||||
|
@ -29,8 +34,6 @@ int main(int argc, char** argv)
|
||||||
sockaddr_in addr;
|
sockaddr_in addr;
|
||||||
memset(&addr, 0, sizeof(sockaddr_in));
|
memset(&addr, 0, sizeof(sockaddr_in));
|
||||||
|
|
||||||
int port = atoi(argv[2]);
|
|
||||||
char* host = argv[1];
|
|
||||||
addr.sin_family = AF_INET;
|
addr.sin_family = AF_INET;
|
||||||
addr.sin_port = htons(port);
|
addr.sin_port = htons(port);
|
||||||
addr.sin_addr.s_addr = inet_addr(host);
|
addr.sin_addr.s_addr = inet_addr(host);
|
||||||
|
@ -70,10 +73,12 @@ int main(int argc, char** argv)
|
||||||
memcpy(msg.msg_iov->iov_base, "World", 5);
|
memcpy(msg.msg_iov->iov_base, "World", 5);
|
||||||
msg.msg_iov->iov_len = 5;
|
msg.msg_iov->iov_len = 5;
|
||||||
|
|
||||||
r0 = st_sendmsg(stfd, &msg, 0, ST_UTIME_NO_TIMEOUT);
|
if (pong) {
|
||||||
assert(r0 > 0);
|
r0 = st_sendmsg(stfd, &msg, 0, ST_UTIME_NO_TIMEOUT);
|
||||||
printf("Pong %s:%d %d bytes, flags %#x, %s\n", inet_ntoa(peer.sin_addr), ntohs(peer.sin_port), r0,
|
assert(r0 > 0);
|
||||||
msg.msg_flags, msg.msg_iov->iov_base);
|
printf("Pong %s:%d %d bytes, flags %#x, %s\n", inet_ntoa(peer.sin_addr), ntohs(peer.sin_port), r0,
|
||||||
|
msg.msg_flags, msg.msg_iov->iov_base);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue