void CMsgdlg::OnOK()
{
m_msgstr.SetWindowText("");
CString strmsg;
m_editMsg.GetWindowText(strmsg);
if (strmsg.GetLength()>150)
{
m_msgstr.SetWindowText("消息长度大于150个字符,不能发送!");
return;
}
WSADATA wsaData;
SOCKADDR_IN sockAddr;
if(WSAStartup(MAKEWORD(2,2),&wsaData)) //调用Windows Sockets DLL
{
m_msgstr.SetWindowText("Winsock无法初始化!");
return;
}
struct protoent *ppe;
ppe=getprotobyname("tcp");
m_hSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);
sockAddr.sin_family=AF_INET; //internetwork: UDP, TCP, etc.
sockAddr.sin_port=htons(sdwServerPort);
sockAddr.sin_addr.S_un.S_addr=inet_addr(achServerIP);
int nConnect=connect(m_hSocket,(LPSOCKADDR)&sockAddr,sizeof(sockAddr));
if(nConnect)
m_msgstr.SetWindowText("连接失败!");
else
{
char buf[]={"我爱国"};
send(m_hSocket,buf,strlen(buf),0);
m_msgstr.SetWindowText("发送成功!");
SetTimer(1,500,NULL);
}
}
void CMsgdlg::OnTimer(UINT nIDEvent)
{
CDialog::OnTimer(nIDEvent);
CHAR buf[100]={0};
int nResult =recv(m_hSocket,buf,1000,0);
if(nResult==SOCKET_ERROR)
{
m_msgstr.SetWindowText("截获服务器回复错误!");
}
CString st;
st.Format("%s",buf);
if(st.GetLength()>10){
closesocket(m_hSocket);
WSACleanup();
KillTimer(1);
AfxMessageBox(st);
}
}