论坛: 编程破解 标题: 这几个函数有人见过吗? 复制本贴地址    
作者: quest [quest]    版主   登录
sockaddrmset();
sockaddrmcpy();

之前有struct sockaddr_in sockaddr
不知道这两个sockaddr是否有关联。但我还是没明白他到底是干啥用的?闷中

地主 发表时间: 04/07 15:57

回复: sunyue [sunyue]   论坛用户   登录
看函数名,该和memset/memcpy类似,可能是init buffer和copy content of buffer

把代码贴出来大家看看嘛

B1层 发表时间: 04/07 16:10

回复: quest [quest]   版主   登录
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

int hostconnect(char *usraddr,int port)
{
int sock;
struct hostent *host;
struct sockaddr_in sockaddr;
host==gethostbyname(usraddr);
if (host==NULL)
return -2;
sock=socket(AF_IENT,SOCK_STREAM,0);
if (sock<0)
return -1;
sockaddrmset(&sockaddr,0,sizeof(sockaddr_in));
sockaddrmcpy(sockaddr.sin_addr,host->h_addr_list[0],host->lenght);
sockaddr.sin_family=AF_INET;
sockaddr.sin_port=htons(port);
return (connect(sock,(struct sockaddr *)&sockaddr,sizeof (sockaddr))<0)?-1:sock;
}


后面还有一段,懒得打了,连接这个函数打出来得了。
结论是,没办法通过编译。提示两个函数出错。
头痛ing

B2层 发表时间: 04/07 16:46

回复: quest [quest]   版主   登录
代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/types.h>

int hostconnect(char *usraddr,int port) //connect function
{
int sock;
struct hostent *host;
struct sockaddr_in sa;
host==gethostbyname(usraddr);
if (host==NULL)
return -2;
sock=socket(AF_INET,SOCK_STREAM,0);
if (sock<0)
return -1;
sarmset(&sa,0,sizeof sa);
sarmcpy(sa.sin_addr,host->h_addr_list[0],host->h_length);
sa.sin_family=AF_INET;
sa.sin_port=htons(port);
return (connect(sock,(struct sockaddr *)&sa,sizeof (sa))<0)?-1:sock;
}

int hostsend(int sock,char *format,...)//send function
{
char BUFFER[1024];
va_list argptr;
va_start(argptr,format);
vsprintf(BUFFER,format,argptr);
va_end(argptr);
return send(sock,BUFFER,strlen(BUFFER),0);
}

main (int argc,char *argv[])
{
int black_sock,port;
char bugs_bunny[3];
port=atoi(argv[2]);
if (argc<3)
exit(1);
black_sock=hostconnect(argv[1],port);
if (black_sock<0)
exit(2);
hostsend(black_sock,"GET /HTTP/1.0 %c",20);
hostsend(black_sock,"HOST:%s,%c",argv[1],20);
hostsend(black_sock,"%c",20);
while(read(black_sock,bugs_bunny,1)>0)
{
printf ("%C",bugs_bunny[0]);
}
close(black_sock);
}




[此贴被 探索者(quest) 在 04月07日17时01分 编辑过]

B3层 发表时间: 04/07 17:04

回复: sunyue [sunyue]   论坛用户   登录
肯定就是缓冲区初始化和复制缓冲区内容了

B4层 发表时间: 04/07 17:04

回复: quest [quest]   版主   登录
现在编译报错,要么是少头文件,要么应该是少库文件。

到处man都没找以。。。

变态 啊...

B5层 发表时间: 04/07 17:09

回复: sunyue [sunyue]   论坛用户   登录
去GOOGLE搜一下缺少的库文件就有了啦

B6层 发表时间: 04/07 17:18

回复: quest [quest]   版主   登录
无意中看到一段这样的代码

memcpy(&rv,h->h_addr,h->h_length);
看来上面那两个函数应该就是您 说的那个。估计是作者笔误了:(


B7层 发表时间: 04/08 09:20

回复: sunyue [sunyue]   论坛用户   登录
作者可能用到了memcpy的功能,但那两个函数是作者自己写的。所以肯定除了memcpy/memset还实现了其他什么功能(不然完全可以用库函数)……要是有函数体的源码就好了

B8层 发表时间: 04/08 10:16

回复: liming2008 [liming2008]   论坛用户   登录
  我本人非常同意~感觉者~的看法我建议让他做一下版主・

B9层 发表时间: 04/08 11:25

回复: sunyue [sunyue]   论坛用户   登录
TO IT未来先锋:
(汗)不会吧……你太夸张了……
我比斑竹差的非常非常非常远呢,拜托你以后不要说这种让我尴尬的话,谢谢!

B10层 发表时间: 04/08 11:32

回复: cyh811122 [cyh811122]   论坛用户   登录
请问上面的那段程序是用C++写的还是C写的?

B11层 发表时间: 04/10 23:28

回复: group [group]   论坛用户   登录
那个所谓的先锋想乱搞事呢,有空回家给老妈洗脚尽孝吧,看你这种人事情不会做,一天到晚吹牛,一辈子不成事,活多久浪费多久的粮食,不如早点学哥哥跳楼自杀,我帮你在网上建一个灵堂吧

B12层 发表时间: 04/11 10:08

回复: jinying [jinying]   论坛用户   登录
这是什么东西哟你是不是人在那里找的这些东西哟!

B13层 发表时间: 04/19 20:38

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号