C++ xboard chess gui不支持';不发送第二次用户移动

C++ xboard chess gui不支持';不发送第二次用户移动,c++,unix,protocols,chess,C++,Unix,Protocols,Chess,我正在尝试为xboard制作一个象棋引擎。在用户做出第一步后,我的象棋引擎会回复,然后xboard不会发送用户做出的下一步 我记录了xboard发送到我引擎的任何内容。下面是一个代码示例,其中我的引擎使用move e7e6回复e2e4: #include <iostream> #include <fstream> #include <unistd.h> std::ofstream f("xboardtoeng.txt"); std::ofstream f2(

我正在尝试为xboard制作一个象棋引擎。在用户做出第一步后,我的象棋引擎会回复,然后xboard不会发送用户做出的下一步

我记录了xboard发送到我引擎的任何内容。下面是一个代码示例,其中我的引擎使用
move e7e6
回复
e2e4

#include <iostream>
#include <fstream>
#include <unistd.h>

std::ofstream f("xboardtoeng.txt");
std::ofstream f2("engtoxboard.txt");

int main(int argc, char** argv){  

    while (true){
        std::string s;
        std::cin>>s;
        f<<s<<std::endl;
        if (s=="protover"){
            std::cout<<"feature done=1"<<std::endl;
            f2<<"feature done=1"<<std::endl;
        }else if (s=="e2e4"){
            usleep(100000);
            std::cout<<"move e7e6"<<std::endl;
            f2<<"move e7e6"<<std::endl;
        }
    }
    f.close();
}
在这里,xboard确实向我的引擎发送了第一步。但是,不会发送下一个用户移动。知道我哪里做错了吗


我使用xboard版本4.8.0,我有同样的问题,因为xboard发送SIGINT和SIGTERM信号。添加代码
信号(SIGINT,SIG\u IGN)
解决我的问题


我也有同样的问题,因为Xboard发送SIGINT和SIGTERM信号。添加代码
信号(SIGINT,SIG\u IGN)
解决我的问题


xboard假设另一侧是计算机引擎。它在等待你的引擎移动。你的引擎回复了吗?事情是这样的:xboard向我的引擎发送“e2e4”后,我的引擎回复“移动e7e6”。xboard收到了我引擎的回复,并将其显示在黑板上。之后,我尝试(作为用户)在gui上进行另一个移动,但该移动从未传输到我的引擎。在这种状态下,引擎不应该是期望从xboard收到消息的引擎吗?xboard假定另一端是计算机引擎。它在等待你的引擎移动。你的引擎回复了吗?事情是这样的:xboard向我的引擎发送“e2e4”后,我的引擎回复“移动e7e6”。xboard收到了我引擎的回复,并将其显示在黑板上。之后,我尝试(作为用户)在gui上进行另一个移动,但该移动从未传输到我的引擎。在这种状态下,引擎不应该是期望从xboard收到消息的引擎吗?
xboard
protover 2
accepted usermove
accepted myname
accepted done
new
random
level 40 5 0
post
hard
time 30000
otim 30000
usermove e2e4