在侦听套接字时从stdin获取数据

时间:2019-06-21 14:28:52

标签: c++ sockets server client listen

我正在研究用于发送文件的服务器-客户端程序(在Linux中)。客户端从服务器请求文件,服务器将文件发送给他,然后另一个客户端可以执行该操作,依此类推。

我想在“退出”输入标准输入时结束程序。 在这种情况下,服务器将结束他的工作,然后结束程序。 我的问题是如何处理服务器侦听套接字的情况(通过listen()函数),并输入“ exit”。如果我们在中间,我不知道如何识别退出类型listen()函数。

listen(*mySocket, 3); 
int t; 
if ((t = accept(s,NULL,NULL)) < 0) {
    return -1;
}
return t;

-------
int S_checkQuit(int mySocket){
    fd_set rfds;
    struct timeval tv;
    tv.tv_sec=0;
    tv.tv_usec =0;
    FD_ZERO(&rfds);
    FD_SET(mySocket, &rfds);
    FD_SET(0, &rfds);
    int n = mySocket + 1;
    int rv = select(n, &rfds, NULL, NULL, &tv);
    if (rv){
        string cmd;
        getline(cin, cmd);
        if (cmd == "quit") {
            return 1;
        }
    }
    return 0;
}

这就是我现在如何在程序其余部分中为stdin捐款的方式: 我想找到一种方法来捕获“退出”输入。

0 个答案:

没有答案