套接口绑定时返回10047错误???

周东尧 2008-11-09 09:31:49

#include <stdio.h>
#include <WINSOCK2.H>
#include <iostream.h>
void main()
{
printf("Service waiting\n");
WORD wVersionRequested;
WSADATA WSAData;
int err;
wVersionRequested=MAKEWORD(1,1);
err=WSAStartup(wVersionRequested,&WSAData);
if (err!=0)
{
cout<<"WSAStartup failed:"<<WSAGetLastError()<<endl;
return;
}
if (LOBYTE(WSAData.wVersion)!=1||HIBYTE(WSAData.wVersion)!=1)
{
WSACleanup();
cout<<"WSAStartup failed:type not fill"<<endl;
return;
}
SOCKET sockServ=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//INADDR_ANY本身就是一个值为0的宏,在此可以不强制转换
addrSrv.sin_port=htons(5000);
err=bind(sockServ,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
if (err!=0)
{
cout<<"bind failed:"<<WSAGetLastError()<<endl;
return;
}
listen(sockServ,5);
SOCKADDR_IN addrClient;
int len;
len=sizeof(SOCKADDR);
int n=1;
while (1)
{

SOCKET sockConn=accept(sockServ,(SOCKADDR*)&addrClient,&len);
char sendBuf[100];
sprintf(sendBuf,"欢迎 %s:%d访问我的服务器",inet_ntoa(addrClient.sin_addr),ntohs(addrClient.sin_port));
send(sockConn,sendBuf,strlen(sendBuf)+1,0);
char recvBuf[100];
recv(sockConn,recvBuf,100,0);
printf("%s\n",recvBuf);
closesocket(sockConn);
n++;
/*if (n==2)
{
break;
}*/

}

}
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
周东尧 2008-11-09
  • 打赏
  • 举报
回复
成了,谢谢
周东尧 2008-11-09
  • 打赏
  • 举报
回复
谢谢,成了
沙漠里的海豚 2008-11-09
  • 打赏
  • 举报
回复
设置addrSrv时设置一下它的family值

addrSrv.sin_family = AF_INET;

试试看
周东尧 2008-11-09
  • 打赏
  • 举报
回复
怎没没有人回复那
代码转载自:https://pan.quark.cn/s/a4b39357ea24 LA 1010 逻辑分析仪被视作一种效能卓越的数字信号分析设备,其核心功能在于对数字通信协议,例如I²C,进行检测与解构。本资源将集中阐述LA 1010的操作流程以及如何借助该设备对I²C协议的波形展开分析。 确保逻辑分析仪被正确地连接至目标系统是极为关键的环节。在运用LA 1010的过程中,必须将分析仪的通道0与通道1分别对应连接至目标装置的SCL(钟)与SDA(数据)线路。务必保证连接的稳固性且无任何干扰因素,以此确保数据采集的精确度。 随后,需要设定采样参数。采样频率对于能否成功捕捉到信号具有决定性的作用。针对I²C协议,通常选用的采样频率范围介于100kHz到400kHz之间,这一范围的选择取决于实际应用场景中I²C总线的运行速度。然而,LA 1010所能达到的最高采样速率可能高达500MHz,因此需要根据具体需求进行相应的调整。此外,还必须精心挑选适配目标设备工作电压的电压等级,例如3.3V、5V或1.8V。 在软件操作层面,需要选取恰当的通道与协议种类,即I²C。一旦启动采样,逻辑分析仪便开始记录相关数据。软件界面通常会实展示波形图,为观察与分析提供便利。 关于I²C协议波形的解读,我们可以遵循以下步骤: 1. 总线处于空闲状态:SCL与SDA均维持在高电平位置,这表明总线当前未进行数据传输。 2. 传输起始信号:当SCL处于高电平期间,SDA线从高电平转换至低电平,此动作标志着数据传输的开始。 3. 地址、数据及应答的识别:在每一个SCL高电平脉冲的持续间内,SDA线上的电平状态代表了数据位。地址与数据的传输均为双向过程,而读写标识则由SDA线上的电平来...

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧