カスタムトンネルを作成しています(最初にカスタムhelloがあり、次に接続がトンネルになります)が、かなり遅いです。
スピードを上げるために何かできることはないかと思います。
たとえば、短いメッセージを使用する接続の速度を上げる1つの方法は、nagleアルゴリズム(TCP_NODELAY)を無効にすることです。
トンネリングには何をお勧めしますか?それが助けになるなら、私はRTSPとHTTPをトンネリングしています。
編集:コードは可能な限り単純です:
int remote_fd;
int local_fd;
int fdmax;
char buf[1 << 10];
fdset master_set, read_set;
FD_ZERO(&master_set);
FD_ZERO(&read_set);
FD_SET(remote_fd, &master_set);
FD_SET(local_fd, &master_set);
fdmax = remote_fd > local_fd ? remote_fd : local_fd;
//Connect both remote_fd and local_fd
...
while (1) {
read_set = master_set;
select(fdmax + 1, &read_set, NULL, NULL, NULL);
if (FD_ISSET(local_fd, &read_set)) {
int n = recv(local_fd, buf, sizeof(buf), 0);
send(remote_fd, buf, n, 0);
}
if (FD_ISSET(remote_fd, &read_set)) {
int n = recv(remote_fd, buf, sizeof(buf), 0);
send(local_fd, buf, n, 0);
}
}
読みやすくするために、エラー処理とソケットを接続するコードを省略しました。