例如向192.168.1.1这个IP发送“administrastor:123;key:456”的数据包,怎么编写呀?只要把算法写在下面就行啦。谢谢高手。。。。我用的是vc++6.0呀。
问题补充:如果像一楼说的那样,哪能编一个最简单的程序来解决我上面的问题吗????? 你们倒是说具体的做法呀。
只空说,谁不会呀。菜鸟免回
vc++6.0能编程序向某ip发送数据包吗?
答案:2 悬赏:70 手机版
解决时间 2021-02-05 10:57
- 提问者网友:抽煙菂渘情少年
- 2021-02-04 22:30
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-02-04 23:06
发送数据包,那边要有相应的服务器在服务才行。
最普通的是 ping.
system("ping 192.168.1.1");
这就是向那里发送数据包,但不是你的“。。。。”数据包。
发个e-mail也是发送数据包。可以达到你的目的。
---------------------------------------
vc++6.0 可以写Winsock client程序,接收方运行Winsock 服务器程序.
服务器 FTP 用20,21 口, HTTP 用80 口, telnet 用 23 号口
例如:
#include
#include
#include
// #include
#define SERVER_PORT 1500
#define buff_size 4096
void main(int argc,char *argv[]){
char buff[buff_size];
SOCKET sock;
SOCKADDR_IN addr;
struct sockaddr_in localAddr;
WSADATA wsa;
WORD wVersionRequested;
struct hostent *hs; // socket alloc struc host_name etc
int count, len, N_try=0;
char *url="www.baidu.com";
char str[80],char *hostIP;
int id,rc;
..
wVersionRequested = MAKEWORd( 2, 0 );
if (WSAStartup(wVersionRequested , &wsa)!=0)
{printf("Winsock Initialization failed.\n"); exit(0);
};
// task 1: creates a reliable stream TCP socket.
// Address family AF_INET (PF_INET)
// SOCK_STREAM -- TCP, SOCK_DGRAM -- UDP, p3-protoco
// sock < 0 -- error
if ((sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET){
printf("Can not create socket.\n"); exit(0);
}
// task 2: establish connection with peer
addr.sin_family = PF_INET;
addr.sin_port = htons(SERVER_PORT);
if ((addr.sin_addr.s_addr=inet_addr(url))==-1){
if ((hs=gethostbyname(url))==NULL){
id = WSAGetLastError();
switch (id)
{。。。。
default: printf("unknown error id = %d\n",id); break;
};
printf("Can not resolve specified host.\n");
exit(0);
};
memcpy((void *)&addr.sin_addr.s_addr,hs->h_addr,hs->h_length);
// establishes a connection to a peer.
Lab_try:
if (connect(sock,(LPSOCKADDR)&addr,sizeof(addr))==SOCKET_ERROR){
N_try++; Sleep(2000);
if (N_try < 5) goto Lab_try;
printf("Can not connect to specified host.\n"); exit(0);
}
// task 3: communication 这里发送
sprintf(buff,"administrastor:123;key:456");
if (send(sock,buff,strlen(buff),0) != strlen(buff)) printf("client send error \n");;
strcpy(buff,"\0");
Sleep(2000);
。。。。
// 这里检查
closesocket(sock);
----------------------------
基本写法如上。没有简单办法。
最普通的是 ping.
system("ping 192.168.1.1");
这就是向那里发送数据包,但不是你的“。。。。”数据包。
发个e-mail也是发送数据包。可以达到你的目的。
---------------------------------------
vc++6.0 可以写Winsock client程序,接收方运行Winsock 服务器程序.
服务器 FTP 用20,21 口, HTTP 用80 口, telnet 用 23 号口
例如:
#include
#include
#include
// #include
#define SERVER_PORT 1500
#define buff_size 4096
void main(int argc,char *argv[]){
char buff[buff_size];
SOCKET sock;
SOCKADDR_IN addr;
struct sockaddr_in localAddr;
WSADATA wsa;
WORD wVersionRequested;
struct hostent *hs; // socket alloc struc host_name etc
int count, len, N_try=0;
char *url="www.baidu.com";
char str[80],char *hostIP;
int id,rc;
..
wVersionRequested = MAKEWORd( 2, 0 );
if (WSAStartup(wVersionRequested , &wsa)!=0)
{printf("Winsock Initialization failed.\n"); exit(0);
};
// task 1: creates a reliable stream TCP socket.
// Address family AF_INET (PF_INET)
// SOCK_STREAM -- TCP, SOCK_DGRAM -- UDP, p3-protoco
// sock < 0 -- error
if ((sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET){
printf("Can not create socket.\n"); exit(0);
}
// task 2: establish connection with peer
addr.sin_family = PF_INET;
addr.sin_port = htons(SERVER_PORT);
if ((addr.sin_addr.s_addr=inet_addr(url))==-1){
if ((hs=gethostbyname(url))==NULL){
id = WSAGetLastError();
switch (id)
{。。。。
default: printf("unknown error id = %d\n",id); break;
};
printf("Can not resolve specified host.\n");
exit(0);
};
memcpy((void *)&addr.sin_addr.s_addr,hs->h_addr,hs->h_length);
// establishes a connection to a peer.
Lab_try:
if (connect(sock,(LPSOCKADDR)&addr,sizeof(addr))==SOCKET_ERROR){
N_try++; Sleep(2000);
if (N_try < 5) goto Lab_try;
printf("Can not connect to specified host.\n"); exit(0);
}
// task 3: communication 这里发送
sprintf(buff,"administrastor:123;key:456");
if (send(sock,buff,strlen(buff),0) != strlen(buff)) printf("client send error \n");;
strcpy(buff,"\0");
Sleep(2000);
。。。。
// 这里检查
closesocket(sock);
----------------------------
基本写法如上。没有简单办法。
全部回答
- 1楼网友:英雄的欲望
- 2021-02-04 23:48
vc6.0好像不能兼容vista的,下个 visual studio 2003吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯