|
-
June 15th, 2009, 02:00 PM
#5
Re: Simple Client Server app issue
now connection in made but the sckRecv() in never called and i still cannot reconnect back
Code:
#include <windows.h>
#include <winsock.h>
#pragma comment(lib,"wsock32.lib")
#pragma comment(lib,"mpr.lib")
void sckListen();
void sckRecv(LPVOID TempSock);
SOCKADDR Addr;
SOCKET Socket;
DWORD threadId;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
WSADATA WsaDat;
if (WSAStartup(MAKEWORD(2,0), &WsaDat) != 0)
{MessageBox(0,L"WSA Initialization failed.",L"",0);}
Socket = socket(AF_INET, SOCK_STREAM, 0);
if (Socket == INVALID_SOCKET)
{MessageBox(0,L"Socket creation failed.",L"",0);}
SOCKADDR_IN SockAddr;
SockAddr.sin_port = 8877;
SockAddr.sin_family = AF_INET;//(TCP/IP)
SockAddr.sin_addr.S_un.S_addr = INADDR_ANY;
if (bind(Socket, (SOCKADDR *)(&SockAddr), sizeof(SockAddr)) == SOCKET_ERROR)
{MessageBox(0,L"Attempt to bind failed.",L"",0);}
listen(Socket, 1);
while (true)
{
SOCKET *TempSock = new SOCKET;
*TempSock = accept(Socket, &Addr, (int *)sizeof(Addr));
if (*TempSock !=SOCKET_ERROR)
{
Socket = *TempSock;
CreateThread( NULL, 0,(LPTHREAD_START_ROUTINE) sckRecv,(LPVOID)*TempSock, 0, &threadId);
delete [] TempSock;
}
}
}
void sckRecv(LPVOID TempSock)
{
int RetVal = SOCKET_ERROR;
char String[6]={0};
while (RetVal == SOCKET_ERROR)
{
RetVal = recv((SOCKET)TempSock, String, sizeof(String), 0);
if (String[0] != NULL){
MessageBoxA(0,String,String,0);}
if ((RetVal == 0)||(RetVal == WSAECONNRESET)||(RetVal == WSAECONNABORTED))
{
MessageBox(0,L"Connection closed at other end.",L"",0);
break;
}
}
}
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|