【发布时间】:2018-05-24 12:37:33
【问题描述】:
我试图连接从两个不同函数返回的两个值,一个服务器 IP 地址和一个学生 ID。用于获取这些功能的函数已成为无效函数,以便访问服务器。我想使用strcat() 函数,但我无法让它成功工作。下面的代码成功地从服务器返回了这两个单一的值。
void get_ipaddress(void)
{
int fd;
struct ifreq ifr;
printf("IP Address:");
fd = socket(AF_INET, SOCK_DGRAM, 0);
/* I want to get an IPv4 IP address */
ifr.ifr_addr.sa_family = AF_INET;
/* I want an IP address attached to "eth0" */
strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
ioctl(fd, SIOCGIFADDR, &ifr);
close(fd);
/* Display result */
printf("%s\n", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
}
void get_studentid(int socket)
{
char studentid[32];
size_t k;
readn(socket, (unsigned char *) &k, sizeof(size_t));
readn(socket, (unsigned char *) studentid, k);
printf("Student ID: %s\n", studentid);
} // end get_studentid()
我正在尝试获取输出
192.168.229.128:S1427722
我之前尝试过的任何代码都返回了错误
无效的表达式使用
【问题讨论】:
-
strcat 在哪里?
-
它不存在,我一直在尝试和错误使用 strcat() 的许多不同方式,每次我实现它时,它都会返回“无效使用表达式”,已经使用了 3 个小时所以不知道要放什么实现
-
哦 - 你没有返回任何指针两个函数。所以你不能在 strcat() 中使用它。
-
谢谢,回到绘图板
-
"用来获取这些的函数已经是无效函数,以便访问服务器。"这是什么意思?
标签: c server concatenation void strcat