有关unix下socket的问题
下面这段程序是网上找的一段程序
但是报错如下
server_body.c: In function `main':
server_body.c:41: incompatible types in assignment
附程序如下:
#include "server_body.h"
#include "stdio.h"
#include "string.h"
#include "sys/socket.h"
#include "netinet/in.h"
#include "pthread.h"
#include "sys/timeb.h"
#include "unistd.h"
#include "stdlib.h"
static char* GetCurrentTime(char* t_buffer)
{
time_t ltime;
time(<ime);
memset(t_buffer,0,strlen(t_buffer));
sprintf(t_buffer,"%ld",ltime);
return t_buffer;
}
static void* doit(void* arg)
{
pthread_detach(pthread_self());
close((int)arg);
return(NULL);
}
int main(int argc, char **argv)
{
int listenfd, connfd;
socklen_t addrlen,len;
struct sockaddr_in cliaddr, servaddr;
pthread_t tid;
listenfd=socket (AF_INET, SOCK_STREAM, 0 );
bzero (&servaddr, sizeof (servaddr ) );
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl (INADDR_ANY );
servaddr.sin_port=PORT;
bind (listenfd, ( struct sockaddr *)&servaddr, sizeof(servaddr ) );
listen (listenfd, MAXCON );
addrlen=sizeof ( cliaddr );
cliaddr=malloc(addrlen ); //这里就是41行
for ( ; ; )
{
len=addrlen;
connfd=accept(listenfd, (struct sockaddr*)&cliaddr,&len );
pthread_creat (&tid, NULL, &doit, ( void*)connfd );
}
return 0;
}