本帖最后由 一路向北lm 于 2018-7-8 16:32 编辑
大家好 我写了一个tcp客户端,在调用函数时出现问题:
- main()
- {。。。。 //该部分为socket即填充网络结构体部分
- printf("please input:");
- if(scanf("%d", &n) < 0)
- switch(n)
- {
- case 1:
- do_register(msg, sockfd); break;
- default:
- printf("end switch\n");
- }
- connect(sockfd, (struct sockaddr *)&serveraddr, addrlen);
- }
- do_register()
- {
- msg.type = 'R';
- printf("input your name:");
- int n = scanf("%s", msg.name);
- printf("input your passwd:");
- int n = scanf("%s", msg.data);
- }
connect放在switch后面,调用是成功了,可是在被调函数中我打印n的值是0;两个都是0,这是为什么啊?
而且我把scanf换成fgets后第一个fgets都没阻塞直接阻塞到第二个fgets,而且打印了被赋值的msg.name为空,这又是为什么啊??
把connect提到填充网络结构体后(就是main中那部分代码的前面)。
这两个疑问 求大神帮忙解答下,谢谢。
|