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++编程实现给你发送一条数据呢?需要用到哪些知识?

上面第一问题我解决了 只剩下补充的问题了 没人来回答呢怎么会
展开
 我来答
enochwills
2010-09-15 · TA获得超过4793个赞
知道大有可为答主
回答量:2031
采纳率:96%
帮助的人:1635万
展开全部
/*下面的程序是正确的,注意连接静态库的方法,初始化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;
}
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
yangyangsun126
2010-09-16
知道答主
回答量:35
采纳率:0%
帮助的人:0
展开全部
程序需要在两台电脑同时运行。
1。加载套接字库 WSAStartups() 需要头文件winsock2.h
2.创建套接字 socket();
3.绑定套接字bind();
4.sendto()//服务器端,recvfrom //客户端
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式