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%
帮助的人:1613万
展开全部
/*下面的程序是正确的,注意连接静态库的方法,初始化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;
}
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
yangyangsun126
2010-09-16
知道答主
回答量:35
采纳率:0%
帮助的人:0
展开全部
程序需要在两台电脑同时运行。
1。加载套接字库 WSAStartups() 需要头文件winsock2.h
2.创建套接字 socket();
3.绑定套接字bind();
4.sendto()//服务器端,recvfrom //客户端
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式