【发布时间】:2010-11-07 01:51:17
【问题描述】:
我正在使用 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;
}
【问题讨论】:
-
稳定?这是“建立”的一种形式吗?
-
您应该描述您是如何创建 socketAddr 结构的,并提供证据证明您可以连接到可访问的服务器(即,没有防火墙或路由导致问题)
-
@abelensky - Yo por mi parte supongo que "jesusiniesta" es un hablante nativo del español, asi que cuando tu consigas escribir en su idioma al nivel que ha escrito en el tuyo, que sigas quejando .. . :P
-
@asveikau @abelensky :是的,我不是以英语为母语的人。事实上我真的很不擅长。但是当我犯了错误并尝试提高我的英语时,我可以知道。