晚上好,我是在 c 编程语言下使用 linux sockets 的新手。
现在我正在尝试让客户端与服务器通信。基本上我坚持的事情是让服务器接受来自客户端的连接并在接收到它们后打印数字。到目前为止,这是服务器的源代码:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <time.h>
int main(int argc, char *argv[])
{
int listenfd = 0, connfd = 0, n = 0;
struct sockaddr_in serv_addr;
char sendBuff[1024], recvBuff[1024];
listenfd = socket(AF_INET, SOCK_STREAM, 0);
memset(&serv_addr, '0', sizeof(serv_addr));
memset(sendBuff, '0', sizeof(sendBuff));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(5000);
bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
listen(listenfd, 10);
while(1)
{
printf("in first while loop\n");
connfd = accept(listenfd, (struct sockaddr*)NULL, NULL);
while( (n = read(listenfd, recvBuff, sizeof(recvBuff)-1)) > 0)
{
printf("in second while loop\n");
recvBuff[n] = 0;
fputs(recvBuff, stdout);
}
}
}
我没有发布客户端代码,因为我认为它不相关。我已经制作了一个服务器,它可以向客户端发送一些东西,它工作得很好。但我对如何让服务器接受来自客户端的输入感到非常困惑。先感谢您。