【发布时间】:2017-10-15 13:00:20
【问题描述】:
我是套接字编程的新手,我想从客户端程序中读取整数序列,并将带有这些整数的数组发送到服务器程序并在那里进行一些计算。但我该怎么做?我用 write 发送的数组必须是 char* 吗?也许从标准输入读取一行并从数字以外的其他字符中清除它并将其发送到服务器然后分别获取每个数字?但我该怎么做?这是我的代码..
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
int main() {
int sockfd, answer=1;
struct sockaddr_un serv_addr;
if ((sockfd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
perror("ERROR opening socket");
exit(1);
}
serv_addr.sun_family = AF_UNIX;
strcpy(remote.sun_path, "askisi3");
if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1) {
perror("ERROR connecting");
exit(1);
}
do{
printf("Enter a sequence of integers.\n");
//code here...
printf("Type 0 for exit or any number to continue.\n");
scanf("%d",&answer)
}while(answer=0);
return 0;
}
【问题讨论】:
-
你需要发送的缓冲区是一个指向const void的指针。您可以传入指向 any 对象的指针(但请注意,它可能是不可移植的
-
"我用 write 发送的数组必须是
char*" Achar*正好是一个指针,精确存储 one 指针值。没有机会存储字符串和整数或其他任何内容。