请问我的SOCKET为什么不能运行? 请问我的SOCKET为什么不能运行?我的SOCKET 服务器部分老是Bind Error 可以在别人的机子上运行好好的,请高手指点! 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我的服务器代码 SOCKET m_hSocket=INVALID_SOCKET; m_hSocket=socket(AF_INET,SOCK_STREAM,0); UpdateData(); sockaddr_in m_addr; m_addr.sin_family=AF_INET; m_addr.sin_addr.S_un.S_addr=INADDR_ANY; m_addr.sin_port=htons(80); int ret=0; int error=0; ret=bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr)); if(ret==SOCKET_ERROR) { m_state="Bind Error:"; UpdateData(FALSE); return; } ret=listen(m_hSocket,2); if(ret==SOCKET_ERROR) { m_state="Listen Error"; UpdateData(FALSE); return; } SOCKET s=accept(m_hSocket,NULL,NULL); if(s==SOCKET_ERROR) { m_state="Accept Error"; UpdateData(FALSE); return; } else { m_state="Accept success"; UpdateData(FALSE); } char buff[256]; ret=recv(s,buff,20,0); m_data=buff; UpdateData(FALSE); closesocket(m_hSocket); 什么错误?WSAGetLastError()看看?可能你的机器端口80被占用。你用netstate -p TCP看看吧,80是谁在占用。一般来说可能是iis web server了。 可能是吧,我才装的ISS ,那怎么解决呢? 但我还是不能解决这个问题,我把端口号改了,虽然没有BIND ERROR 但,是运行好像,很顿,我只好把ISS下了,这样就能运行机制了,如果不下ISS ,用那个端口号好啊,请指教,谢谢! TCP一般来说1024以下的端口都被预留了。一般都是1024以上。如果发现Bind不成功,可以用netstat -p TCP来查看端口占用情况。 netstat -p TCP怎么用啊,是在命令行中打么?我试了怎么不行啊 成员函数问题 如何使用Infinite Pin Tee Filter Vfw视频捕获遇到了问题,请各路高手进来看看!(有源码) 为什么我的钩子钩不到QQ窗口内的按键内容? 新人请教,关于浏览文件功能及显示文件路径的问题。 m_ptrConnection->Execute MDI中单当多视图,想VB那种选择视图的对话框如何做。 在dll中能不能产生事件呢? 好多天在潜水,散散分 打开MOEDM 关于MFC中的函数的命名问题 一个字符串变量中存贮的内容以\t分隔,如何把\t分隔的内容分解成为一个个字符串?
SOCKET m_hSocket=INVALID_SOCKET; m_hSocket=socket(AF_INET,SOCK_STREAM,0);
UpdateData();
sockaddr_in m_addr;
m_addr.sin_family=AF_INET;
m_addr.sin_addr.S_un.S_addr=INADDR_ANY;
m_addr.sin_port=htons(80);
int ret=0;
int error=0;
ret=bind(m_hSocket,(LPSOCKADDR)&m_addr,sizeof(m_addr));
if(ret==SOCKET_ERROR)
{
m_state="Bind Error:";
UpdateData(FALSE);
return;
}
ret=listen(m_hSocket,2);
if(ret==SOCKET_ERROR)
{
m_state="Listen Error";
UpdateData(FALSE);
return;
}
SOCKET s=accept(m_hSocket,NULL,NULL);
if(s==SOCKET_ERROR)
{
m_state="Accept Error";
UpdateData(FALSE);
return;
}
else
{
m_state="Accept success";
UpdateData(FALSE);
}
char buff[256];
ret=recv(s,buff,20,0);
m_data=buff;
UpdateData(FALSE);
closesocket(m_hSocket);
你用netstate -p TCP看看吧,80是谁在占用。一般来说可能是iis web server了。
我试了怎么不行啊