Click here to Skip to main content
15,891,375 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: how can I post WM_UNICHAR message Pin
ThatsAlok20-Mar-05 22:08
ThatsAlok20-Mar-05 22:08 
GeneralCompile errors Pin
steven1119-Mar-05 21:47
steven1119-Mar-05 21:47 
GeneralRe: Compile errors Pin
Mike Dimmick19-Mar-05 22:43
Mike Dimmick19-Mar-05 22:43 
GeneralRe: Compile errors Pin
steven1119-Mar-05 23:54
steven1119-Mar-05 23:54 
GeneralRe: Compile errors Pin
Michael Dunn20-Mar-05 5:56
sitebuilderMichael Dunn20-Mar-05 5:56 
GeneralRe: Compile errors Pin
steven1120-Mar-05 8:35
steven1120-Mar-05 8:35 
GeneralRe: Compile errors Pin
steven1120-Mar-05 8:52
steven1120-Mar-05 8:52 
Generalproblem using Select() on multicast server Pin
eli1502197919-Mar-05 21:10
eli1502197919-Mar-05 21:10 
Hi all,
I need to develop a multy-cast server which accept connection from several
clients(each client at different port).
The problem is that after the clinet connect to my server,and send data at the first time,in the next time,from some reason - the select()
function is blocking my application,until the client will connect again(which means that the client needs to connect each time he want to send data).
I was told to use non blocking socket,but it's not working.
Here is my listening thread:
UINT ListeningThread(LPVOID lpvoid)
{
	CMultycast_serverDlg *dlg = (CMultycast_serverDlg *)lpvoid;

         FD_SET SocketSet;                       // set of socket descriptors for select()
         int port;                               // looping veriable for ports
         struct sockaddr_in echoClntAddr;      // client address
         SOCKET clntSock;                      // socket discriptor for client
         unsigned int clntLen;                 // length of client address data structure
	int SelectResult = 0;
	unsigned long argp = 1;

	dlg->SelectFlag = false;
	dlg->ExitFlag = false;
	FD_ZERO(&SocketSet);
	for(port = 0 ; port < dlg->NumberOfPorts ; port++)
	   FD_SET((unsigned int)dlg->SocketsArray[port] , &SocketSet);
	while(!dlg->ExitFlag)
	{
		//FD_ZERO(&SocketSet);
	    //for(port = 0 ; port < dlg->NumberOfPorts ; port++)
		//	 FD_SET((unsigned int)dlg->SocketsArray[port] , &SocketSet);
	    SelectResult = select(/*dlg->MaxDescriptor + 1*/NULL , &SocketSet , NULL , NULL , /*&(dlg->selTimeout)*/NULL);
	    if(SelectResult == 0)
			continue;//AfxMessageBox("Error :  No echo requests for the time you specified....server still listenning");
		else if(SelectResult == SOCKET_ERROR)
		{
			AfxMessageBox("Error :  select() has failed ");
		    return 0 ;
		}
		else
		{
			//dlg->SelectFlag = true;
			for(port = 0 ; port < dlg->NumberOfPorts ; port++)
			{
				if(FD_ISSET(dlg->SocketsArray[port] , &SocketSet))
				{
			  		clntLen = sizeof(echoClntAddr);//set the size of the in-out parameter
						clntSock=accept(dlg->SocketsArray[port] , (struct sockaddr*)&echoClntAddr , (int *)&clntLen);
					if(clntSock != INVALID_SOCKET) //wait for a client to connect
					{
						dlg->HandleClient(clntSock);//clntSock is connected to a client
	 					dlg->m_RecievedDataListBox.AddString(dlg->RecievedString);
						//WSACleanup();
					 	ioctlsocket(clntSock , FIONBIO , &argp);
					}
				}  
			} 
		}
	}
	for(port = 0 ; port < dlg->NumberOfPorts ; port++)
	   closesocket(dlg->SocketsArray[port]);
	return 1;
}


Can anyone please help me???

With best regards,
Eli
QuestionPower control ? Pin
Still learning how to code19-Mar-05 20:03
Still learning how to code19-Mar-05 20:03 
AnswerRe: Power control ? Pin
ThatsAlok20-Mar-05 18:06
ThatsAlok20-Mar-05 18:06 
GeneralCPropertyPage and CDialog Pin
Yaron Abershitz19-Mar-05 19:43
Yaron Abershitz19-Mar-05 19:43 
GeneralRe: CPropertyPage and CDialog Pin
Renjith Ramachandran20-Mar-05 16:06
Renjith Ramachandran20-Mar-05 16:06 
GeneralVisual C++.Net - Alternative to Large Switch Case Pin
JSadleir19-Mar-05 13:42
JSadleir19-Mar-05 13:42 
GeneralRe: Visual C++.Net - Alternative to Large Switch Case Pin
Member 30761219-Mar-05 20:22
Member 30761219-Mar-05 20:22 
GeneralRe: Visual C++.Net - Alternative to Large Switch Case Pin
Mike Dimmick19-Mar-05 22:53
Mike Dimmick19-Mar-05 22:53 
GeneralRe: Visual C++.Net - Alternative to Large Switch Case Pin
Ravi Bhavnani20-Mar-05 5:41
professionalRavi Bhavnani20-Mar-05 5:41 
GeneralRe: Visual C++.Net - Alternative to Large Switch Case Pin
Blake Miller21-Mar-05 5:36
Blake Miller21-Mar-05 5:36 
GeneralRe: Visual C++.Net - Alternative to Large Switch Case Pin
Ravi Bhavnani21-Mar-05 6:40
professionalRavi Bhavnani21-Mar-05 6:40 
GeneralJabber protocol Pin
Anonymous19-Mar-05 12:42
Anonymous19-Mar-05 12:42 
GeneralRe: Jabber protocol Pin
ThatsAlok20-Mar-05 18:22
ThatsAlok20-Mar-05 18:22 
QuestionUsing command-line? Pin
dSolariuM19-Mar-05 10:34
dSolariuM19-Mar-05 10:34 
AnswerRe: Using command-line? Pin
gamitech19-Mar-05 23:39
gamitech19-Mar-05 23:39 
QuestionHi~ How use CodeProject?? Pin
KonyangUni19-Mar-05 7:41
KonyangUni19-Mar-05 7:41 
GeneralTrackbar Pin
henry12819-Mar-05 5:57
henry12819-Mar-05 5:57 
GeneralDigital Signature Pin
pranavamhari19-Mar-05 3:10
pranavamhari19-Mar-05 3:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.