2012-01-30 12 views
0

私はサービスを構築しようとしています。コードは次のとおりです。gsoapコピーのSigsegv

ArchivatorCoreService server; 
ArchivatorCoreService *tserver; 
int port = 8080; 
SOAP_SOCKET m, s; 
m = server.bind(NULL, port, 100); 
if (!soap_valid_socket(m)) 
{ 
     exit(1); 
} 
else 
{ 
    qDebug() << "Info: Bind: Succesfully socket connection: " << m << ". Port " << port 
} 
for (;;) 
{ 
    qDebug() << "waiting..."; 
    s = server.accept(); 

    if (!soap_valid_socket(s)) 
    { 
    if (server.errnum) 
    { 
     qDebug() << "1"; << "Error: Failed accept: " << messagec; 
     exit(1); 
    } 
    else 
    { 
    qDebug() << "Info: Thread " << i << " accepts socket " << s << " connection from IP " << ((server.ip >> 24)&0xFF) << "." << ((server.ip >> 16)&0xFF) << "." << ((server.ip >> 8)&0xFF) << "." << ((server.ip)&0xFF); 

} 
qDebug() << "2"; 
tserver = server.copy(); // make a safe copy 
qDebug() << "3"; 

インラインtserver = server.copy();エラーsigsegv。

ArchivatorCoreService soapのheracly;あなたは非常に多くの

+0

あなたの "server"変数は宣言されたばかりで、初期化されていません。それはランダムなゴミを含んでいます。 –

+0

C++ ArchivatorCoreServiceサーバーで、デフォルトのコンストラクタを呼び出すか、¿いいえ? – Jjreina

答えて

0

おかげであなたが使用しているのgSOAPのバージョンを言っていません。 2.8.5より前のバージョンでは、生成されたC++コードでメモリリークやSIGSEGVに問題があります。いくつかの詳細については私の前の答えhereを参照してください。