All pastes #784969 Raw Edit

Mine

public text v1 · immutable
·published 2007-11-19 23:21 UTC
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);
        }
}