TCP:WSASartup、WSACleanup、socket、bind、listen、connect、accept、read、write、close。
UDP:sendto、recvfrom。
在编写Winsocket函数时得先认识它们的流程(一般都是这种流程)
服务端:先WSASartup->socket->bind->listen->accept->read->write->closesocket->WSACleanup。
客服端:WSASartup->socket->connect->read->write->closesocket->WSACleanup
客服端还好写。。主要是服务端。。他要处理两件事。。。
一、接收所客服端上线的数据,保存它们的节点(一般是用容器(个人喜好))
二、把接收到的数据转发出去(转发数据的时候要处理是否与发送信息来的节点不同);
转发时处理的函数
void CServerDlg::SendMsg(CString tString /* = _T */, SaveClientItem *tItem)
{
TCHAR tBuf[MAX_PATH];
_tcscpy_s(tBuf,MAX_PATH,tString);
for ( POSITION idx = 0; idx<m_SaveItem.GetTailPosition(); idx++)
{
if (!tItem || tItem->m_ClientSocket != m_SaveItem.GetAt(idx).m_ClientSocket ||
tItem->m_ClientHandle != m_SaveItem.GetAt(idx).m_ClientHandle)
{
send(m_SaveItem.GetAt(idx).m_ClientSocket,(char *)tBuf,_tcslen(tBuf)*sizeof(TCHAR),0);
}
}
}