相关疑难解决方法(0)

将Winsock移植到Linux套接字

我有一个使用Winsock进行网络连接的程序,我们现在的一个要求就是将程序移植到Linux上.阻止我们这样做的唯一因素是Winsock.

我的问题是:我可以轻松地将其移植到Linux实现中吗?

是否有任何陷阱我应该注意,如果我只是包含适当的头文件,我必须要处理什么样的事情?

谢谢你的帮助!

我发布了代码,但由于法律原因,我不能不幸.但是,我们的代码确实使用了以下内容:

WSAStartup(..)
WSACleanup(..)
Socket(..)
sendto(..)
recvfrom(..)
ioctlsocket(..)
setsocketopt(..)
Run Code Online (Sandbox Code Playgroud)

sockets linux windows porting winsock

7
推荐指数
2
解决办法
2万
查看次数

如何检测窗口上的stdin是否有输入?

我想检测是否在Windows中的stdin上有输入等待.

我在Linux上使用以下通用结构:

fd_set currentSocketSet;
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 0;
int result = 1;
while (result > 0){
    FD_ZERO(&currentSocketSet);
    FD_SET(STDIN, &currentSocketSet);
    result = select(STDIN+1, &currentSocketSet, NULL, NULL, &tv);
    if (result == -1){
        printf("Network Error -- select errored with id=%d.\n", errno);
        return;
    } else if (result > 0){
        //...do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我不想处理像kbhit这样的键盘和键盘功能.我想要一种方法来做我所要求的.我也不希望第三方库也这样做,我希望通过本机Windows库调用来获得答案.

注意#2:在Windows上,上面的代码失败,窗口错误代码为10038"尝试对不是套接字的东西进行操作",这可能意味着窗口不支持在STDIN上选择.

c c++ windows

6
推荐指数
1
解决办法
3349
查看次数

标签 统计

windows ×2

c ×1

c++ ×1

linux ×1

porting ×1

sockets ×1

winsock ×1