18,356
社区成员
发帖
与我相关
我的任务
分享
void CtalkDlg::OnClickedBtnSend()
{
// TODO: 在此添加控件通知处理程序代码
CString strSend;
GetDlgItem(IDC_EDIT_SEND)->GetWindowTextW(strSend);
CString strUser;
GetDlgItem(IDC_EDIT_USER)->GetWindowTextW(strUser);
SOCKADDR_IN ServerAddr;
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(6000);
if(strUser =="")
{
DWORD dwAddress;
((CIPAddressCtrl*)GetDlgItem(IDC_EDIT_USER))->GetAddress(dwAddress);
ServerAddr.sin_addr.S_un.S_addr=htonl(dwAddress);
}
else
{
PHOSTENT phost;
USES_CONVERSION;
if((phost=gethostbyname(W2A(strUser)))!=NULL)
{
ServerAddr.sin_addr=*(in_addr*)phost->h_addr_list[0];
}
}
DWORD dwSend;
WSABUF bufSend;
USES_CONVERSION;
bufSend.buf=W2A(strSend);
int len=sizeof(SOCKADDR);
bufSend.len=strSend.GetLength()+1;
int Ret=WSASendTo(m_sock,&bufSend,1,&dwSend,0,(SOCKADDR*)(&ServerAddr),len,NULL,NULL);
if(SOCKET_ERROR ==Ret)
{
MessageBox(_T("发送失败"));
}
GetDlgItem(IDC_EDIT_SEND)->SetWindowTextW(_T(""));
}