控制台聊天程序服务器端代码(3)

http://www.itjxue.com  2015-07-17 00:54  来源:未知  点击次数: 

  closesocket(sockConnect);

  }

  WSACleanup();

  return 0;

  }

  // 2009-06-28

  #pragma comment(lib,"ws2_32.lib")

  #include

  #include

  #include

  using namespace std;

  string strCurMsg="";

  void recvProc(SOCKET sockConnect)

  {

  char msgRcv[100]={0};

  while(true)

  {

  if(SOCKET_ERROR==recv(sockConnect,msgRcv,sizeof(msgRcv),0))

  {

  cout<<"\nHe is leaving";

  return;

  }

  if(msgRcv[0]!=’\0’)

  {

  strCurMsg.erase(strCurMsg.end()-7,strCurMsg.end());

  strCurMsg+="He said: ";

  strCurMsg+=msgRcv;

  strCurMsg+=’\n’;

  strCurMsg+="input: ";

  system("cls");

  cout<

  }

  }

  }

  int main(int argc, char* argv[])

  {

  WORD wVersionRequested;

  WSADATA wsaData;

  int err;

  wVersionRequested = MAKEWORD( 1, 1 );

  err = WSAStartup( wVersionRequested, &wsaData );

  if ( err != 0 ) {

  return 1;

  }

  if ( LOBYTE( wsaData.wVersion ) != 1||

  HIBYTE( wsaData.wVersion ) != 1) {

  WSACleanup( );

  return 1;

  }

  SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

  sockaddr_in addrSrv;

  memset(&addrSrv,0,sizeof(addrSrv));

  addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

  addrSrv.sin_family=AF_INET;

  addrSrv.sin_port=htons(5000);

  if(bind(sockSrv,(sockaddr*)&addrSrv,sizeof(sockaddr))==SOCKET_ERROR)

  {

  cout<<"bind error"<

  }

  if(listen(sockSrv,5)==SOCKET_ERROR)

  {

  cout<<"listen error"<

  }

(责任编辑:IT教学网)

更多

推荐计算机等级考试文章