我有兩個套接字文件描述符a
和b
,它們的功能是socket
。問題是:我該怎麼做才能使a
中的任何內容都寫入b
,然而,從b
中讀取的內容將寫入a
。這種情況像代理一點。你會給我一些想法,謝謝!C套接口重定向
int fd_a, fd_b;
void fd_init()
{
fd_a = socket(AF_INET, SOCK_STREAM, 0);
fd_b = socket(AF_INET, SOCK_STREAM, 0);
}
void* work_a(void* arg)
{
// read something from fd_a then write immediately to fd_b
}
void* work_b(void* arg)
{
// read something from fd_b then write immediately to fd_a
}
int main(int argc, char* argv[])
{
// ...
fd_init();
pthread_create(pthread_a, 0, work_a, NULL);
pthread_create(phtread_b, 0, work_b, NULL);
pthread_join(pthread_a);
pthread_join(pthread_b);
// ...
return EXIT_SUCCESS;
}
注意:不能用BUFFER數組中的work_a()
無論是功能還是work_b()
它是最好的,如果你可以在你想要實現的東西上添加示例代碼。 – askb
「...任何從'a'讀取的內容...」 - *任何內容*?如果讀者完全沒有意識到自己正在做這件事,這是一個很高的命令,這是一種可疑的描述中遺漏的情況。這聽起來像是在試圖以編程方式實現單功能'ncat'或'netcat'等。 – WhozCraig
你是什麼意思「無法在...中使用緩衝區數組」? –