关于c++ socket 网络编程 IP地址的问题

我刚学c++我想给一个IP地址赋值用什么变量啊例如sin_addr.S_un.S_addr=?比如我定义了一个charIP[4],我填入右边的话会提示我IPmusthav... 我刚学c++ 我想给一个IP地址赋值 用什么变量啊 例如sin_addr.S_un.S_addr =? 比如我定义了一个char IP[4],我填入右边的话会提示我 IP must have class/struct/union type,那么我应该如何定义这个IP地址 或者说如何转换成IP地址的数据类型?? 展开
 我来答
敛正雅7f
2011-04-13 · TA获得超过2031个赞
知道大有可为答主
回答量:1553
采纳率:0%
帮助的人:1764万
展开全部

看这个是不是你想要的。。。 你可以去查一下他到底是要个什么类型。。然后把你的ip转成他的类型就好了。。人家已经提供了inet_addr函数,你是还想重载"="吗? 

unsigned long address = inet_addr( "192.168.0.1" );

struct in_addr addr;

addr.S_un.S_addr = address;    // ugh, UGLY!

char* addrstr = inet_ntoa( addr );

Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
匿名用户
2011-04-15
展开全部
通信标识flag,假如flag = 0 是等待,flag = 1是传输,flag = 2是接收。在没有信息时,处于等待线程状态;
3、要求客户端必须配置服务器IP地址和端口号;
4、定义传输数据格式,要有数据头、数据量和数据尾;
5、服务器端收到数据头,将通信标识改为flag = 2,进入接受线程;
6、根据数据量和数据尾判断数据是否接收完毕。
7、如果接受的数据量和传输中定义的数据量不符,则要求客户端重新发送;(将flag = 1),三次后仍不符则发送错误给客户端,并显示和记录在服务器通信记录中,退出接收线程,进入等待线程;
8、接收成功后,清空buffer,然后进入等待线程flag = 0;
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aifeiasdf
2011-04-13 · TA获得超过101个赞
知道答主
回答量:121
采纳率:0%
帮助的人:65.5万
展开全部
不知道你用的什么开发工具 如果是vc6.0的话就需要下载一个套接字编程的包装上,如果是vs2005以及以上的话就不用下载,直接包含winsock2.h头文件即可
SOCKADDR_IN test.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
IP赋值可以参考如上inet_addr也可以接受一个CString类型的参数,有什么不懂得速度附加问题
追问
我用的vc6.0
我的意思是定义一个变量 这个变量为一个4字节的字符串 就像我说的 char ip【4】
如何 转换ip的数据类型 或者说直接定义他的类型 能让test.sin_addr.S_un.S_addr = ip
追答
好吧 那你这样吧 
CString temp;
temp.Append(IP);
addrSer.sin_addr.S_un.S_addr = inet_addr(temp);
你看这样是不是你想要的结果 不过多半Append函数执行完了以后CString temp里面的值不是你想要的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤松独海
2011-04-13 · TA获得超过1513个赞
知道大有可为答主
回答量:1220
采纳率:0%
帮助的人:494万
展开全部
SOCKADDR_IN addrSer;
addrSer.sin_family = AF_INET;
addrSer.sin_port = htons(7000);
addrSer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
进行 inet_addr转换,
追问
你搞错我问问题的意思了
我的意思是定义一个变量 这个变量为一个4字节的字符串 就像我说的 char ip【4】
如何 转换ip的数据类型 或者说直接定义他的类型 能让addrSer.sin_addr.S_un.S_addr = ip
追答
CString str="127.0.0.1"
然后对其进行inet_addr转换。
字符数组也是如此
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuizhi0904
2011-04-13 · TA获得超过380个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:150万
展开全部
给我你的邮箱,我以前写过一个用socket发送文件的程序,发给你,也是vc6.0写的
追问
zw04318@163.com  3q 最好有详细注释
追答
已发
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式