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++编程实现给你发送一条数据呢?需要用到哪些知识?
上面第一问题我解决了 只剩下补充的问题了 没人来回答呢怎么会 展开
展开全部
/*下面的程序是正确的,注意连接静态库的方法,初始化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;
}
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询