MFC程序绑定地址失败?

细露仔 2015-06-08 11:36:30
#include "winsock2.h"     
#pragma comment(lib,"ws2_32.lib")
#define MAXNUM 20

class CServerDlg : public CDialog
{
public:
CIPAddressCtrl m_IP;
int m_port;
public:
SOCKET m_server,m_client;
SOCKET m_Clients[MAXNUM]; // 客户端套接字
int m_CurClient; // 当前连接的客户数量
virtual void HandleData();
virtual BOOL PreTranslateMessage(MSG *pMsg);

public:
CString m_serverIP;

};


↑上面的是ServerDlg.h里的我定义的内容


↓下面的是ServerDlg.cpp里的OnOK函数(用于响应监听按钮)
void CServerDlg::OnOK()
{
// TODO: Add extra validation here

// 服务器端地址
sockaddr_in serveraddr;
serveraddr.sin_family = AF_INET; //内部网络协议TCP/UDP等
m_IP.GetWindowText(m_serverIP);
// 设置本机地址
serveraddr.sin_addr.S_un.S_addr = inet_addr(m_serverIP);
UpdateData(TRUE);
// 设置端口号
serveraddr.sin_port = htons(m_port);
// 绑定地址
if(bind(m_server,(sockaddr*)&serveraddr,sizeof(serveraddr)))
{
MessageBox("绑定地址失败");
return;
}

// 开始监听
listen(m_server,50);
//CDialog::OnOK();


}


问题是无论我输入什么ip地址,都显示绑定地址失败。。这是什么原因?
↓下面是我的对话框

上下分别是CIPAddressCtrl m_IP和int m_port
...全文
710 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevancheng 2018-08-20
  • 打赏
  • 举报
回复
m_server 初始化了吗?
WSAStartUp 调用了吗?
qq_39469213 2018-08-20
  • 打赏
  • 举报
回复
值是对的 MessageBox(m_IP)和端口都是可以正常获取到,WSAGetLastError()这个值获取不到 没有返回任何值
老铁门 2016-04-07
  • 打赏
  • 举报
回复
请问这个问题你有没有解决?我也遇到了,。
快乐鹦鹉 2015-06-10
  • 打赏
  • 举报
回复
什么意思不重要,重要的是这个值对不对?
Eleven 2015-06-10
  • 打赏
  • 举报
回复
bind失败,看看WSAGetLastError()的值是什么?
细露仔 2015-06-09
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
m_IP.GetWindowText(m_serverIP); 你确定这句执行后,m_serverIP的值就是你输入的IP地址吗?
这语句不是这个意思么……
快乐鹦鹉 2015-06-09
  • 打赏
  • 举报
回复
m_IP.GetWindowText(m_serverIP); 你确定这句执行后,m_serverIP的值就是你输入的IP地址吗?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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