c++里一个很奇怪的问题 获取本地ip地址的问题
#pragmacomment(lib,"Ws2_32")#include"stdafx.h"#include"iostream.h"#include<winsock.h>...
#pragma comment(lib,"Ws2_32")
#include "stdafx.h"
#include "iostream.h"
#include <winsock.h>
#include <stdio.h>
int main(int argc, char* argv[])
{ char buf[512];
struct hostent *ph;
if(gethostname(buf,sizeof(buf))==NULL) return -1;
cout<<buf<<endl;
ph=gethostbyname(buf);
cout<<ph->h_length<<endl;
cout<<inet_ntoa(*((struct in_addr *)ph->h_addr_list[0]))<<endl;
return 0;
}
结果buf里的内容根本就没有读进去 输出buf值是:烫烫烫烫烫烫烫烫。。。。我搜了好多都是差不多这样的啊
还有我已经在工程 的连接里连接了那个ws2_32.lib,还有其他的需要连接吗?
其实我还想知道个问题 :比如我知道你电脑的ip 怎样c++编程实现给你发送一条数据呢?需要用到哪些知识?
上面第一问题我解决了 只剩下补充的问题了 没人来回答呢怎么会 展开
#include "stdafx.h"
#include "iostream.h"
#include <winsock.h>
#include <stdio.h>
int main(int argc, char* argv[])
{ char buf[512];
struct hostent *ph;
if(gethostname(buf,sizeof(buf))==NULL) return -1;
cout<<buf<<endl;
ph=gethostbyname(buf);
cout<<ph->h_length<<endl;
cout<<inet_ntoa(*((struct in_addr *)ph->h_addr_list[0]))<<endl;
return 0;
}
结果buf里的内容根本就没有读进去 输出buf值是:烫烫烫烫烫烫烫烫。。。。我搜了好多都是差不多这样的啊
还有我已经在工程 的连接里连接了那个ws2_32.lib,还有其他的需要连接吗?
其实我还想知道个问题 :比如我知道你电脑的ip 怎样c++编程实现给你发送一条数据呢?需要用到哪些知识?
上面第一问题我解决了 只剩下补充的问题了 没人来回答呢怎么会 展开
2个回答
展开全部
/*下面的程序是正确的,注意连接静态库的方法,初始化SOCKET库函数的方法,GetLastError的方法,以及取得gethostname的方法!!!!*/
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "wsock32.lib")
int main(void)
{
char buf[256]="";
struct hostent *ph = 0;
WSADATA w; WSAStartup(0x0101, &w); //这一行必须在使用任何SOCKET函数前写!
if(gethostname(buf, 256)) {
fprintf(stderr, "gethostname() fault %d\n", GetLastError());
return 0;
}else{
printf("hostname: %s\n", buf);
}//end if
ph = gethostbyname(buf);
printf("LEN %d -> %s\n", ph->h_length, inet_ntoa(*((struct in_addr *)ph->h_addr_list[0])));
WSACleanup();
return 0;
}
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "wsock32.lib")
int main(void)
{
char buf[256]="";
struct hostent *ph = 0;
WSADATA w; WSAStartup(0x0101, &w); //这一行必须在使用任何SOCKET函数前写!
if(gethostname(buf, 256)) {
fprintf(stderr, "gethostname() fault %d\n", GetLastError());
return 0;
}else{
printf("hostname: %s\n", buf);
}//end if
ph = gethostbyname(buf);
printf("LEN %d -> %s\n", ph->h_length, inet_ntoa(*((struct in_addr *)ph->h_addr_list[0])));
WSACleanup();
return 0;
}
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询