初识Winsocket(TCP)函数。局域网聊天

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);
  }
 }
}

原文地址:https://www.cnblogs.com/ccmfc/p/1707680.html