控制台聊天程序实例代码
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-29
#include #include using namespace std; string strCurMsg=""; void recvProc(SOCKET sockClient) { char msgRcv[100]={0}; while(true) { if(SOCKET_ERROR==recv(sockClient,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 sockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(5000); if (connect(sockClient,(sockaddr*)&addrSrv,sizeof(sockaddr)) == SOCKET_ERROR) { cout<<"connected failed\n"; return 1; } else { cout<<"connect OK\n"; } CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)recvProc,(void*)sockClient, 0,NULL); while(true) { char buf[100]={0}; strCurMsg+="input: "; system("cls"); cout< cin.getline(buf,100); strCurMsg.erase(strCurMsg.end()-7,strCurMsg.end()); strCurMsg+="You said:"; strCurMsg+=buf; strCurMsg+=’\n’; send(sockClient,buf,sizeof(buf),0); } closesocket(sockClient); WSACleanup(); return 0; } |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于控制台聊天程序实例代码的所有评论