Встраивание Python в c ++ для проблем с потоковым программированием в Socket

Я написал сценарий Python, встроенный в C ++ для программирования сокетов. У меня есть две конечные системы, обе из которых могут отправлять и получать. Операция отправки и получения происходит в разных потоках C ++. Сборка программы нормальная, но при запуске .exe-файла возникает странная ошибка.

Сначала я подозревал, что это происходит из-за того, что сокеты отправки и получения совпадают.
Я тоже завязывал разные розетки но зря.

Может кто-нибудь сказать мне, в чем здесь проблема?

Код выглядит так:

DWORD WINAPI sendPack(LPVOID iValue)
{
while(1){
const char* sendPy = "UDPSockSend.sendto('10707',('10.107.35.167',21567))";
PyRun_SimpleString(sendPy);
}
return 0;
}

DWORD WINAPI receive(LPVOID iValue){
while(1){
Py_Initialize();
recPy = "data,addr = UDPSockRcv.recvfrom(99000)";
PyRun_SimpleString(recPy);
}
return 0;
}

int threads()
{
HANDLE sendPackThread, receiveThread;
DWORD dwGenericThread;

char lszThreadParam[4];

receiveThread = CreateThread(NULL,0,receive,&lszThreadParam,0,&dwGenericThread);
if(receiveThread == NULL){
DWORD dwError = GetLastError();
return 0;
}

sendPackThread = CreateThread(NULL,0,sendPack,&lszThreadParam,0,&dwGenericThread);
if(sendPackThread == NULL){
DWORD dwError = GetLastError();
std::cout<<"SCM:Error in Creating send sample thread"<<dwError<<"\n" ;
return 0;
}

return 1;
}

int main(int argc, char* argv[])
{
using namespace std;
Py_Initialize();

const char * initPy = "import socket;
UDPSockSend = socket.socket(socket.AF_INET,socket.SOCK_DGRAM);
UDPSockRcv = socket.socket(socket.AF_INET,socket.SOCK_DGRAM);
listen_addr = ('',2000);UDPSockRcv.bind(listen_addr)";
PyRun_SimpleString(initPy);int thd = threads();

system("pause");
return 0;
}

заранее спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]