各种转载

本文解决recvfrom函数中因fromlen参数设置不当导致的错误,并介绍C++中不同类型map的正确遍历方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

recvfrom 错误 GetLastError() SOCKET_ERROR 10014

int PASCAL FAR recvfrom( SOCKET s, char FAR* buf, int len, int flags,struct sockaddr FAR* from, int FAR* fromlen);

函数原型是这样滴,废话不多说,最后一个参数错误。

最后一个参数fromlen的长度错误,应该给他一个初始化值,大小为struct sockaddr 的大小

既是:

int fromlen=sizeof(struct sockaddr );

测试一次···应该OK了


===============================================================================================================

http://blog.youkuaiyun.com/cyhong9/article/details/8177494

一。定义如:map < int, CString > 或者 map < int, 结构体名>的元素遍历

         map < int, CString >  maps;       或者map < int, 结构体名>   maps;

          for(int  i=0;i < maps. size() ;  i++) 

            {

                    CString s=maps[ i ];

             }

二。定义如:map < CString , 结构体名的元素遍历

         map <  CString , 结构体名>  maps;    

        map <  CString , 结构体名>  : : iterator      iter;

         for(  iter=maps.begin();     iter!=maps.end();   iter++)
          {
              CString a= iter - > first;

               结构体名 p = iter - > second;

         }

====================================== ====================================== ===================================

一般使用迭代器遍历比较方便。map<string,int> m;

map<string,int>::iterator it;

it = m.begin();

while(it != m.end())
{
    //it->first;
    //it->second;
    it ++;         
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值