我正在使用 unix 套接字编写一个简单的客户端-服务器系统。从终端执行时,我的客户端程序会产生分段错误。
我很确定 seg-fault 是由一些菜鸟错误引起的,但是当我尝试使用 KDBG(kde gdb 前端)对其进行调试时,我的问题就出现了。
这是它打破的地方:
if (DEBUG) printf("-- connect()... \n");
if (connect (mySocket, (struct sockaddr *)socketAddr,sizeof (*socketAddr)) == -1) {
perror(error);
printf("%s\n",error);
printf ("-- Error when stablishing a connection\n");
return -1;
}
这是输出:
-- connect()...
Connection refused
-- Error when stablishing a connection
我不能那样调试这段代码吗?为什么?
如果我应该可以,你现在知道那里发生了什么吗?我应该怎么做才能获得更多信息?
PS:PS:@abelenky:该部分在调试器中完美运行。这是socketAddr的声明:
struct sockaddr_in socketAddr;
...
if ( (mySocket = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
printf("Error al crear el socket\n");
return -2;
}