• 5405阅读
  • 0回复

[讨论]QT的TCP编程诡异问题 [复制链接]

上一主题 下一主题
离线征途开始
 

只看楼主 倒序阅读 楼主  发表于: 2014-06-22
下面这个是TCP的槽函数,当tcpSocket监控到有数据执行下面的函数。现在的情况是当接受到的字符是regsuc或者regfail或者logfail都可以正常运行,当接受到logsucc的时候程序就会崩溃啊!!!
void MainWindow::on_readyReady()
{
    char buffer[256];
    char *str1;
    char regsuc[8]="regsuc";
    char regfail[9]="regfail";
    char buffer_fail[10]="logfail";
   // char buffer_friend[512];
    char buffer_log[9]="logsucc";
    char buffer_logtemp[8];
    tcpSocket->read(buffer,tcpSocket->bytesAvailable());

    str1=strtok(buffer,"@");
    printf("The buffer is %s\n",buffer);

    if(!strcmp(buffer_log,buffer)) {
      
          QMessageBox::information(NULL, tr("提示"), tr("登录成功!"));
     }

    if(!strcmp(regsuc,buffer)) {
        //printf("register success,haha\n");
        QMessageBox::information(NULL, tr("提示"), tr("恭喜!用户注册成功!"));
    }
    if(!strcmp(regfail,buffer)) {
        //printf(" register fail,haha\n");
        QMessageBox::information(NULL, tr("提示"), tr("很遗憾,该用户名已存在!"));
    }
    if(!strcmp(buffer_fail,buffer)) {
        //printf(" register fail,haha\n");
        QMessageBox::information(NULL, tr("提示"), tr("用户名或密码错误!"));
    }
}
生成了一个BUG文件,BUG文件的内容如下,请大家看下什么原因呢?


System: Linux 2.6.25-14.fc9.i686 #1 SMP Thu May 1 06:28:41 EDT 2008 i686
X Vendor: The X.Org Foundation
X Vendor Release: 10499901
Selinux: Enforcing
Accessibility: Disabled
GTK+ Theme: Nodoka
Icon Theme: Fedora

Memory status: size: 64012288 vsize: 64012288 resident: 22679552 share: 16683008 rss: 22679552 rss_rlim: 4294967295
CPU usage: start_time: 1403254775 rtime: 69 utime: 22 stime: 47 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/libexec/<unknown>'

[Thread debugging using libthread_db enabled]
[New Thread 0xb7f9d720 (LWP 1796)]
0x00110416 in __kernel_vsyscall ()
#0  0x00110416 in __kernel_vsyscall ()
#1  0x0011eb43 in __waitpid_nocancel () from /lib/libpthread.so.0
#2  0x04ac1d97 in g_spawn_sync () from /lib/libglib-2.0.so.0
#3  0x04ac20dc in g_spawn_command_line_sync () from /lib/libglib-2.0.so.0
#4  0x01640253 in ?? () from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
#5  0x016407d8 in ?? () from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
#6  0x01640893 in google_breakpad::ExceptionHandler::InternalWriteMinidump ()
   from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
#7  0x01640e23 in google_breakpad::ExceptionHandler::HandleException ()
   from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
#8  <signal handler called>
#9  0x00000000 in ?? ()

Thread 1 (Thread 0xb7f9d720 (LWP 1796)):
#0  0x00110416 in __kernel_vsyscall ()
No symbol table info available.
#1  0x0011eb43 in __waitpid_nocancel () from /lib/libpthread.so.0
No symbol table info available.
#2  0x04ac1d97 in g_spawn_sync () from /lib/libglib-2.0.so.0
No symbol table info available.
#3  0x04ac20dc in g_spawn_command_line_sync () from /lib/libglib-2.0.so.0
No symbol table info available.
#4  0x01640253 in ?? () from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#5  0x016407d8 in ?? () from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#6  0x01640893 in google_breakpad::ExceptionHandler::InternalWriteMinidump ()
   from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#7  0x01640e23 in google_breakpad::ExceptionHandler::HandleException ()
   from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#8  <signal handler called>
No symbol table info available.
#9  0x00000000 in ?? ()
No symbol table info available.
#0  0x00110416 in __kernel_vsyscall ()
The program is running.  Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal]

QMetaObject::connectSlotsByName: No matching signal for on_readyReady()
/usr/libexec/<unknown>: No such file or directory.
快速回复
限100 字节
 
上一个 下一个