当服务器端程序监听到客户端的连接请求以后
调用自定义消息响应函数进行处理相关请求消息
void CMy12Dlg::Onsoc(WPARAM wParam,LPARAM lParam)
//消息响应函数
{
char cs[100],cs1[10000],name[15];
switch(lParam)
{
case FD_ACCEPT://处理连接请求
{
s1=::accept(s,NULL,NULL);//接受客户端的连接请求
n=n+1; //计数
strl3.Format("有%d客户已经连接上了",n);//格式化字符串
this->SetWindowText(str13);
GetDlgItem(IDC_EDIT1)->GEtWindowText((LPTSTR)cs1,10000);
::getpeername(s1,(SOCKADDR*)&add,(int*)sizeof(add));
//获得连接对方的ip地址
str13+=cs1;
str13+="\r\n";
str13+=::inet_ntoa(add.sin_addr);
str13+="登录到聊天室";
GetDlgItem(IDC_EDIT1)->SetWindowText(str13);
}
break;
case FD_READ: //处理读取事件
{
CString num="";
recv(s1,cs,100,NULL); //接受数据
GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)cs1,10000);
//GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)cs,100);
num+=(LPTSTR)cs1;
num+="\r\n";
num+=::inet_nota(add.sin_addr);
//将ip转换为主机顺序
num+="对您说: ";
num+=cs;
GetDlgItem(IDC_EDIT1)->SetWindowText(num);
}
break;
}
}
用户已经创建了服务器连接套接字
并且将该套接字设置为异步模式
用户在响应函数中处理连接和读取事件
根据消息的不同做出不同的处理
请求有接受和不接受一说
字符串要格式化
格式化就可输出
获得对方的ip地址
ip地址作为字符串的一部分
然后加一些字符串 最终输出
读取事件
接收数据
加上其他字符串输出