Solve Error
-
I edit a program that write by my supervisor and it was a server source code. After I edit, I found out three error. Can anybody solve it? #include "stdafx.h" #define DEFAULT_TCPPORT 1000; typedef struct { SOCKET Skt; SOCKADDR_IN AddrFrom; int nAddrFromLen; LPVOID ParamPointer; }SOCKETDATA; SOCKET ServerSkt; SOCKET eServerSkt; CString ServerStatus="Waiting for Request(s)...."; CString PortStatus="Starting TCP/IP Services."; long SocketClosedDelay=DEFAULT_DELAY; UINT ListenThread(LPVOID lParam) { HANDLE hThread; SOCKADDR_IN SktAddr; char szMessage[300]; ServerSkt = socket ( AF_INET, SOCK_STREAM, 0 ); if ( ServerSkt == INVALID_SOCKET ) { printf("Error INVALID_SOCKET 1\n"); } else { SktAddr.sin_family=AF_INET; SktAddr.sin_port=htons(6000); SktAddr.sin_addr.s_addr=htonl("127.0.0.1"); if ( bind ( ServerSkt, ( LPSOCKADDR ) &SktAddr, sizeof ( SktAddr ) ) == SOCKET_ERROR ) { printf("Error INVALID_SOCKET 2\n"); } else { if ( listen ( ServerSkt, SOMAXCONN ) == SOCKET_ERROR ) { printf("Error INVALID_SOCKET 3\n"); } else { return 0; } } } return 0; } UINT AcceptThread ( LPVOID lParam ) { SOCKADDR_IN AddrFrom; int nAddrFromLen = sizeof ( AddrFrom ); SOCKETDATA* psktData; HANDLE hThread; char szMessage[300]; while (hHeap!=NULL) { psktData -> Skt = accept ( ServerSkt, ( LPSOCKADDR ) &AddrFrom, &nAddrFromLen ); if ( psktData -> Skt == INVALID_SOCKET ) { printf("Error INVALID_SOCKET 4\n"); HeapFree ( hHeap, 0, psktData ); break; } psktData -> AddrFrom = AddrFrom; psktData -> nAddrFromLen = nAddrFromLen; psktData -> ParamPointer = lParam; } return 0; } UINT ClientThread ( LPVOID lParam ) { SOCKETDATA* psktClient = ( SOCKETDATA* ) lParam; SOCKET MySkt = psktClient -> Skt; LPVOID ParamPointer = psktClient ->ParamPointer; SOCKADDR_IN MyAddrFrom = psktClient -> AddrFrom; int nMyAddrFromLen = psktClient -> nAddrFromLen; IN_ADDR InFrom; long nBytesRecv; long nBytesSent; char ReceivedData [400]; char ReceivedDataP[400]; char szMessage[300]; char RequestStr [400]; char RespondStr [400]; char RespondStrA[400]; long Count1; long Count2; long i=0, j=0; BOOL DataRequest=FALSE; BOOL S; HeapFree ( hHeap, 0, psktClient ); nBytesRecv = recv ( MySkt, ReceivedData, sizeof(ReceivedData), 0 ); if (nBytesRecv==SOCKET_ERROR)
-
I edit a program that write by my supervisor and it was a server source code. After I edit, I found out three error. Can anybody solve it? #include "stdafx.h" #define DEFAULT_TCPPORT 1000; typedef struct { SOCKET Skt; SOCKADDR_IN AddrFrom; int nAddrFromLen; LPVOID ParamPointer; }SOCKETDATA; SOCKET ServerSkt; SOCKET eServerSkt; CString ServerStatus="Waiting for Request(s)...."; CString PortStatus="Starting TCP/IP Services."; long SocketClosedDelay=DEFAULT_DELAY; UINT ListenThread(LPVOID lParam) { HANDLE hThread; SOCKADDR_IN SktAddr; char szMessage[300]; ServerSkt = socket ( AF_INET, SOCK_STREAM, 0 ); if ( ServerSkt == INVALID_SOCKET ) { printf("Error INVALID_SOCKET 1\n"); } else { SktAddr.sin_family=AF_INET; SktAddr.sin_port=htons(6000); SktAddr.sin_addr.s_addr=htonl("127.0.0.1"); if ( bind ( ServerSkt, ( LPSOCKADDR ) &SktAddr, sizeof ( SktAddr ) ) == SOCKET_ERROR ) { printf("Error INVALID_SOCKET 2\n"); } else { if ( listen ( ServerSkt, SOMAXCONN ) == SOCKET_ERROR ) { printf("Error INVALID_SOCKET 3\n"); } else { return 0; } } } return 0; } UINT AcceptThread ( LPVOID lParam ) { SOCKADDR_IN AddrFrom; int nAddrFromLen = sizeof ( AddrFrom ); SOCKETDATA* psktData; HANDLE hThread; char szMessage[300]; while (hHeap!=NULL) { psktData -> Skt = accept ( ServerSkt, ( LPSOCKADDR ) &AddrFrom, &nAddrFromLen ); if ( psktData -> Skt == INVALID_SOCKET ) { printf("Error INVALID_SOCKET 4\n"); HeapFree ( hHeap, 0, psktData ); break; } psktData -> AddrFrom = AddrFrom; psktData -> nAddrFromLen = nAddrFromLen; psktData -> ParamPointer = lParam; } return 0; } UINT ClientThread ( LPVOID lParam ) { SOCKETDATA* psktClient = ( SOCKETDATA* ) lParam; SOCKET MySkt = psktClient -> Skt; LPVOID ParamPointer = psktClient ->ParamPointer; SOCKADDR_IN MyAddrFrom = psktClient -> AddrFrom; int nMyAddrFromLen = psktClient -> nAddrFromLen; IN_ADDR InFrom; long nBytesRecv; long nBytesSent; char ReceivedData [400]; char ReceivedDataP[400]; char szMessage[300]; char RequestStr [400]; char RespondStr [400]; char RespondStrA[400]; long Count1; long Count2; long i=0, j=0; BOOL DataRequest=FALSE; BOOL S; HeapFree ( hHeap, 0, psktClient ); nBytesRecv = recv ( MySkt, ReceivedData, sizeof(ReceivedData), 0 ); if (nBytesRecv==SOCKET_ERROR)
It looks like CString is not defined. If you're not using MFC, why not use std::string ? Christian Graus - Microsoft MVP - C++
-
It looks like CString is not defined. If you're not using MFC, why not use std::string ? Christian Graus - Microsoft MVP - C++
when I use std::string but got error below: error C2653: 'std' : is not a class or namespace name
-
when I use std::string but got error below: error C2653: 'std' : is not a class or namespace name
You also need to include headers for string, it's just easier to get there if your app is not using MFC. #include using std::string; Christian Graus - Microsoft MVP - C++
-
You also need to include headers for string, it's just easier to get there if your app is not using MFC. #include using std::string; Christian Graus - Microsoft MVP - C++
It accur more error. I think nevermind. The program that I edit have AfxBeginThread but I don't want it. But I cant confirm whether it correct or not. Below is the ListenThread and I just disable the AfxBeginThread. UINT ListenThread(LPVOID lParam) { HANDLE hThread; SOCKADDR_IN SktAddr; char szMessage[300]; ServerSkt = socket ( AF_INET, SOCK_STREAM, 0 ); if ( ServerSkt == INVALID_SOCKET ) { printf("Error INVALID_SOCKET 1\n"); } else { SktAddr.sin_family=AF_INET; SktAddr.sin_port=htons(6000); //SktAddr.sin_addr.s_addr=htonl(INADDR_ANY); SktAddr.sin_addr.s_addr=htonl("127.0.0.1"); if ( bind ( ServerSkt, ( LPSOCKADDR ) &SktAddr, sizeof ( SktAddr ) ) == SOCKET_ERROR ) { printf("Error INVALID_SOCKET 2\n"); } else { if ( listen ( ServerSkt, SOMAXCONN ) == SOCKET_ERROR ) { printf("Error INVALID_SOCKET 3\n"); } else { /*hThread=AfxBeginThread (AcceptThread,lParam,THREAD_PRIORITY_NORMAL); if ( hThread == NULL ) { wsprintf(szMessage, "(ListenThread) - AfxBeginThread() Error. Unable to Create AcceptThread() Thread."); WriteSysLog(szMessage); } else { wsprintf(szMessage, "(ListenThread) - AcceptThread() Thread Spinoff Completed Successfully."); WriteSysLog(szMessage); return 0; }*/ } } return 0; } } } return 0; } The AfxBeginThread have a AcceptThread, how do I simplify it if I don't want the AfxBeginThread? Below is the AcceptThread code: UINT AcceptThread ( LPVOID lParam ) { SOCKADDR_IN AddrFrom; int nAddrFromLen = sizeof ( AddrFrom ); SOCKETDATA* psktData; HANDLE hThread; char szMessage[300]; while (hHeap!=NULL) { psktData -> Skt = accept ( ServerSkt, ( LPSOCKADDR ) &AddrFrom, &nAddrFromLen ); if ( psktData -> Skt == INVALID_SOCKET ) psktData -> AddrFrom = AddrFrom; psktData -> nAddrFromLen = nAddrFromLen; psktData -> ParamPointer = lParam; hThread = AfxBeginThread ( ( AFX_THREADPROC ) ClientThread, ( LPVOID ) psktData, THREAD_PRIORITY_NORMAL, 0, 0, NULL ); if ( hThread == NULL ) { wsprintf(szMessage, "(AcceptThread) - AfxBeginThread() Error. Unable to Create ClientThread() Thread."); WriteSysLog(szMessage); HeapFree ( hHeap, 0, psktData ); closesocket ( psktData -> Skt ); break; } } return 0; }