紧急问题求助,分不够再开贴追加!
int CServiceThread::Run()
{
sockaddr_in serverAddr;
sockaddr_in clientAddr;
int addinlength = sizeof(clientAddr);
int nRet ;
int nEc ;
SgmHeader sgmHeader1 ;
SgmHeader sgmHeader2 ;
RplHeader rplHeader ;
WORD wVersion = MAKEWORD(1,1) ;
WSADATA wsaData ;
DWORD time1,time2 ;
WORD w ;
DWORD ww ;
BOOL Frame_flg = TRUE ;
nRet = WSAStartup(wVersion,&wsaData) ;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(m_Port);
serverAddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (nRet != 0) {
WSACleanup() ;
return -1 ;
}
if (wVersion != wsaData.wVersion) {
WSACleanup() ;
return -1 ;
}
m_ListeningSocket = socket (AF_INET,SOCK_STREAM,IPPROTO_TCP) ;
if (m_ListeningSocket < 0) {
WSACleanup() ;
return -1 ;
}
nRet = bind(m_ListeningSocket,(SOCKADDR *)&serverAddr,sizeof(serverAddr));
if(nRet == SOCKET_ERROR){
closesocket(m_ListeningSocket);
WSACleanup();
return -1;
}
listen(m_ListeningSocket,1);
m_ServiceSocket = accept(m_ListeningSocket,(sockaddr *)&clientAddr,&addinlength);
fd_set readfds ;
readfds.fd_count = 1 ;
readfds.fd_array[0] = m_ServiceSocket ;
const char FAR* optival ;
int nByte = 300000 ;
optival = (const char *)&nByte ;
setsockopt (m_ServiceSocket,SOL_SOCKET,SO_RCVBUF,optival,4) ;
u_long FAR argp ;
argp = 1 ;
ioctlsocket (m_ServiceSocket,FIONBIO,&argp) ;
while (1) {
if (select (0,&readfds,NULL,NULL,NULL) == 1) {
::AfxMessageBox("难道我又接收到了么?",MB_OK|MB_ICONERROR);
}
return CWinThread::Run();
}
请问这个流程有什么错误么?
我在实际运行的时候 第一次接收电文 很好很正常 服务器端启动以后等待接收客户端来的数据.
但是在第一次处理完数据后,不等客户端发送数据就又弹出了"难道我又接收到了么?"的对话框.我不知道这里到底是怎么回事
希望高人指点
万分感谢!