我是 c 编程的新手,我目前正在尝试理解网络编程的概念。我试图在 Kali linux(基于 Debian 的 linux 系统)上运行一个简单的服务器代码,但是有很多我无法调试的错误。请看看我的代码。
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <time.h>
#include <stdlib.h>
#define SA struct sockaddr
#define MAXLINE 4096
int main(int argc,int **argv)
{
int roockfd,confd;
socklen_t len;
struct sockaddr_in servaddr,cliaddr;
char buff[MAXLINE];
time_t ticks;
roockfd = socket(AF_INET,SOCK_STREAM,0);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13);
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
Bind(roockfd,(SA*)&servaddr,sizeof(servaddr));
Listen(roockfd,5);
for(; ;)
{
len=sizeof(cliaddr);
confd= Accept(roockfd,(SA*)&cliaddr,&len);
printf("Connection from %s, port %d\n",
Inet_ntop(AF_INET,&cliaddr.sin_addr,buff,sizeof(buff)),
ntohs(cliaddr.sin_port));
ticks=time(NULL);
snprintf(buff,sizeof(buff),"%.24s\r\n", ctime(ticks));
printf(confd,buff,strlen(buff));
close(confd);
}
}
Run Code Online (Sandbox Code Playgroud)
等待您的宝贵答复。