我需要有关我制作的程序的帮助。
这是一个简单的客户端服务器连接程序,可以很好地运行,但是一旦我添加#include任何与openCV相关的内容,连接就会立即立即失败,好像根本没有尝试。
我在网上发现的唯一相关信息是这篇文章: Socket doesn't work, when opencv libriary is added
这是代码,只要将opencv #include注释掉,它就可以正常工作,但是,如果完全添加它们,它将始终无法连接。
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <iostream>
#include <winsock2.h>
#include <string>
//#include <opencv2/opencv.hpp>
//#include <opencv2/objdetect.hpp>
//#include <opencv2/imgcodecs.hpp>
//#include <opencv2/highgui/highgui.hpp>
//#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
//using namespace cv;
#pragma comment(lib, "Ws2_32.lib")
int main()
{
WSADATA WSAData;
SOCKET server, client;
SOCKADDR_IN serverAddr, clientAddr;
WSAStartup(MAKEWORD(2, 0), &WSAData);
server = socket(AF_INET, SOCK_STREAM, 0);
serverAddr.sin_addr.s_addr = inet_addr("addresshere");
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(porthere);
bind(server, (SOCKADDR*)&serverAddr, sizeof(serverAddr));
listen(server, 0);
cout << "Listening for incoming connections..." << endl;
int clientAddrSize = sizeof(clientAddr);
client = accept(server, (SOCKADDR*)&clientAddr, &clientAddrSize);
cout << client << "\n";
}
答案 0 :(得分:0)
评论中的答案:使用命名空间std删除, 并只是在cout行上添加了std ::,现在可以使用了。
貌似它引起了opencv的一些问题,但是当它消失时它就可以工作了。