#include #include #include #define BS 4096 int main(int argc,char *argv[]) { int s; struct sockaddr_in name; //char *tmp; int tmp; char chunk[BS]; int off=0; char buf[BS]; int len=sizeof(struct sockaddr_in); if(argc < 3) { printf("usage: urcdump serv port\n"); return -2; } s=socket(PF_INET,SOCK_STREAM,6); memset(&name,0,len); name.sin_family=AF_INET; name.sin_addr.s_addr=inet_addr(argv[1]); name.sin_port=htons(atoi(argv[2])); setlinebuf(stdout); if(connect(s,(struct sockaddr *)&name,len) == -1) return -1; while((len=read(s,buf,BS-1)) > 0) { for(tmp=0;tmp>4&15),1); write(1,"0123456789abcdef"+((buf[tmp])&15),1); } } /* while(off > 26) { if((tmp=memchr(chunk+26,'\n',off-26))) { tmp++; //old write(1,chunk+26,tmp-chunk-26); //testing: for(len=26;len>4 & 15),1); write(1,"0123456789abcdef"+((*chunk+len)&15),1); } } memmove(chunk,tmp,tmp-chunk+1); off-=(tmp-chunk); } } */ } }