18,356
社区成员
发帖
与我相关
我的任务
分享
#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();
}