void server(void)
{
int sock,snew;
struct sockaddr_in serverAddr;
struct sockaddr_in clientAddr;
int client_len;
char c;
extern int errno;
char buffer[256];
long ip;
inti;
bzero((char *)&serverAddr,sizeof(serverAddr));
bzero((char *)&clientAddr,sizeof(clientAddr));
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock=-1) exit(1);
serverAdd.sin_family=AF_INET;
serverAdd.sin_port=htons(SERVER_NUM);
printf("Binding SERVER,port %d\n",serverAdd.sin_port);
if(bind(sock,(struct sockaddr *)serverAddr,sizeof(serverAddr))==-1)
{
printf("Bind failed, errno=%d\n",errno);
close(sock);
exit(1);
}
printf("Listening to client...\n");
if(listen(sock,2)==-1)
{
printf("Listen failed\n");
close(sock);
exit(1);
}
printf("Accepting CLIENT\n");
client_len=sizeof(clientAddr);
snew=accept(sock,(struct sockaddr *)&clientAddr,&client_len);
if(snew==-1)
{
printf("Accept failed\n");
close(sock);
exit(1);
}
ip=ntohl(clientAddr.sin_addr.s_addr);
printf("CLIENT:port=%d:family=%d:
addr=%d:%d:%d:%d\n",
ntohs(clientAddr.sin_port),
clientAddr.sin_family,
(ip> > 24)&0xff,
(ip> > 16)&0xff,
(ip> > 8)&0xff,
ip&0xff,
);
for(;;)
{
bzero(buffer,256);
for(i=0;i <256;i++)
{
buffer[i]=i;
}
if(send(snew,buffer,255,0)==ERROR)
{
break;
}
}
close(sock);
close(snew);
printf("client closed,goodbye\n");
}