資源簡介
zw_selectChat.zip

代碼片段和文件信息
///客戶端
#include
#include
#include
using?namespace?std;
#pragma?comment(lib“ws2_32.lib“)
DWORD?WINAPI?Recv(?LPVOID?lpParameter);
bool?socketSelect(SOCKET?socketint?Timeoutbool?Read);
char?recvBuf[100]=“0“;//accept?the?information
char?getInput[100]=“0“;//store?the?input
SOCKET?soc=NULL;
SOCKADDR_IN?sockSrv;
int?main()
{
HANDLE?hThread;
WORD?wVersionRequested;
WSADATA?wsaData;
int?err;
wVersionRequested=MAKEWORD(11);
err=WSAStartup(wVersionRequested&wsaData);
if(err!=0)
{
return?0;
}
if(LOBYTE(wsaData.wVersion)!=1?||?HIBYTE(wsaData.wVersion)!=1?)
{
WSACleanup();
return?0;
}
soc=socket(AF_INETSOCK_STREAMIPPROTO_TCP);
sockSrv.sin_addr.S_un.S_addr=inet_addr(“211.80.203.73“);
sockSrv.sin_family=AF_INET;
sockSrv.sin_port=htons(6000);
int?con=connect(soc(sockaddr*)&sockSrvsizeof(SOCKADDR));//connect?to?the?server?avaliable
if(con==SOCKET_ERROR)
{
cout<<“connect?error!“< return?0;
}
//the?second?stage
hThread=CreateThread(NULL0RecvNULL0NULL);
while(getInput!=“q“)
{
cout<<“please?input?your?words:“< cin>>getInput;
if(socketSelect(soc1000false)&&getInput!=NULL)
{
send(socgetInputstrlen(getInput)+10);
}
}
closesocket(soc);//close?immediately
WSACleanup();
return?0;
}
DWORD?WINAPI?Recv(?LPVOID?lpParameter)
{
while(1)
{
//recv(socrecvBuf1000);
//cout< //memset(recvBuf0sizeof(recvBuf));
if(socketSelect(soc1000true))
{
int?i=recv(socrecvBuf1000);
if(i>0)
{
cout< memset(recvBuf0sizeof(recvBuf));
}
else
{
cout<<“the?server?has?been?shut?down!?please?log?in?again!“< break;
}
}
}
return?0;
}
bool?socketSelect(SOCKET?socketint?nTimeoutbool?bRead)
{
fd_set?fdset;
timeval?tv;
FD_ZERO(&fdset);
FD_SET(soc&fdset);
nTimeout=(nTimeout>1000?1000:nTimeout);
tv.tv_sec=0;
tv.tv_usec=nTimeout;
int?iRet=0;
if(bRead)
{
iRet=select(0&fdsetNULLNULL&tv);
}
else
{
iRet=select(0NULL&fdsetNULL&tv);
}
if(iRet?<=?0)?{
return?FALSE;
}?else?if?(FD_ISSET(soc?&fdset)){
return?TRUE;
}
return?false;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2387??2019-01-05?23:51??\selectChat.cpp
?????文件??????????36??2019-01-05?23:51??\no.txt
評論
共有 條評論