rendered paste body#include <sys/types.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/sctp.h>
int main(int argc,char *argv[]) {
if(argc!=2) {
printf ("usage: client dest_ip\n");
exit(1);
}
struct sockaddr_in addr;
int sd;
setbuf(stdout,NULL);
addr.sin_addr.s_addr = inet_addr(argv[1]);
struct sockaddr_in sin;
addr.sin_family=PF_INET;
addr.sin_port=htons(6666);
sd=socket(PF_INET,SOCK_SEQPACKET, IPPROTO_SCTP);
if(sd<0) {
perror(NULL);
exit(1);
}
else printf("conecting...");
if(connect(sd,(struct sockaddr *)&addr,sizeof(addr))<0) {
perror(NULL);
exit(1);
}
int n;
char buff[4098];
if((n=recv(sd,buff,4098,0))>0)
write(STDOUT_FILENO, buff,n);
close(sd);
}
#include <stdio.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <netinet/sctp.h>
#include <sys/uio.h>
#include <sys/sysinfo.h>
char buf[4098];
void check_sys_param(){
int days, hours, mins, num;
struct sysinfo sys_info;
if(sysinfo(&sys_info) != 0)
perror("sysinfo");
days = sys_info.uptime / 86400;
hours = (sys_info.uptime / 3600) - (days * 24);
mins = (sys_info.uptime / 60) - (days * 1440) - (hours * 60);
sprintf(buf, "Uptime: %ddays, %dhours, %dminutes, %ldseconds\n", days, hours, mins, sys_info.uptime % 60);
sprintf( buf+strlen(buf), "Load Avgs: 1min(%ld) 5min(%ld) 15min(%ld)\n",
sys_info.loads[0], sys_info.loads[1], sys_info.loads[2]);
sprintf(buf+strlen(buf), "Total Ram: %ldk\tFree: %ldk\n", sys_info.totalram / 1024,
sys_info.freeram / 1024);
sprintf(buf+strlen(buf), "Shared Ram: %ldk\n", sys_info.sharedram / 1024 );
sprintf( buf+strlen(buf), "Buffered Ram: %ldk\n", sys_info.bufferram / 1024);
sprintf( buf+strlen(buf), "Total Swap: %ldk\tFree: %ldk\n", sys_info.totalswap / 1024,
sys_info.freeswap / 1024);
sprintf( buf+strlen(buf), "Number of processes: %d\n", sys_info.procs);
return 0;
}
main()
{
struct sockaddr_in cad;
socklen_t alen;
struct sockaddr_in addr;
addr.sin_family = PF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_port = htons(6666);
int sd = socket(PF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
if( bind( sd, (struct sockaddr *)&addr,sizeof(addr) ) == -1 ) {
perror(NULL);
exit(1);
}
else printf("binded\n");
if (listen(sd, 1)==-1) {
perror(NULL);
exit(1);
}
else printf("listening...\n");
check_sys_param();
int sd2;
for (;;) {
alen = sizeof(cad);
if ( ( sd2 = accept(sd, (struct sockaddr *)&cad, &alen)) < 0) {
perror(NULL);
exit(1);
}
printf(buf);
send(sd2,buf,strlen(buf),0);
close(sd2);
}
}