【发布时间】:2015-03-31 00:40:50
【问题描述】:
我需要使用 write() 函数从 TCP C 服务器传递一个整数,并使用 read() 函数在客户端接收它。
假设在我的服务器中
int check = 0
如何使用 write() 函数发送它?我在我的服务器上试过:
if (write(connfd, (const char *)&check, 4)) {
perror("Write Error");
exit(1);
}
在我的客户端上:
if (n = read(sockfd, &check, 4) > 0) {
printf("ok");
}
但是这种方法既不起作用又感觉不自然。我知道我每次都必须通过缓冲区,但有没有办法加快速度?
另外,重要的是我需要创建一个带有大量变量传输的服务器/客户端程序。不能同时传递多个变量吗?
编辑: 当我说它不起作用时,我的意思是我得到“写入错误:成功”。 connfd 和 sockfd 之前已声明如下:
服务器:
if ((connfd = accept(listenfd, (struct sockaddr *) NULL, NULL)) < 0) {
perror("Accept Error");
exit(1);
}
客户:
if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) {
fprintf(stderr,"Connect Error\n");
exit(1);
}
【问题讨论】:
标签: c sockets client server read-write