Tivoilos
June 9th, 2009, 02:22 PM
I am writing a Multithreaded Server I am not having problems with my NetWorking code just with my threading code. I am using _beginthread which is found in process.h
#include <stdio.h>
#include <winsock2.h>
#include <stdlib.h>
#include <process.h>
#include <windows.h>
#include <conio.h>
#define maxconnections 5
void ClientThread(void *client);
void MTServerThread(void *dummy);
int thread()
{
_beginthread(MTServerThread, 0, NULL);
}
void MTServerThread(void *dummy)
{
WSAData wsaData;
SOCKET server = socket(AF_INET, SOCK_STREAM, 0);
int eServ = WSAStartup(MAKEWORD(2,2), &wsaData);
if(eServ != 0)
{
printf("WSAStartup failed: %d\n", eServ);
exit (1);
}
sockaddr_in sin;
sin.sin_port = htons(6000);
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
if(bind(server,(sockaddr*)&sin, sizeof(sin) == INVALID_SOCKET))
{
printf("bind failed: %d\n", WSAGetLastError());
WSACleanup();
exit (1);
}
if(listen(server,10)!=0)
{
printf("listen failed: %d\n", WSAGetLastError());
exit (1);
}
SOCKET client;
sockaddr_in from;
int fromlen=sizeof(from);
while(true)
{
client=accept(server,(sockaddr*)&from, &fromlen);
_beginthread(ClientThread, 0, (void*)(client));
}
_endthread();
_endthread();
exit(0);
}
The problem I am having problems with is
_beginthread(ClientThread, 0,(void*)(client));
It says undefined reference to 'ClientThread' I have referenced it though =[
any help?
#include <stdio.h>
#include <winsock2.h>
#include <stdlib.h>
#include <process.h>
#include <windows.h>
#include <conio.h>
#define maxconnections 5
void ClientThread(void *client);
void MTServerThread(void *dummy);
int thread()
{
_beginthread(MTServerThread, 0, NULL);
}
void MTServerThread(void *dummy)
{
WSAData wsaData;
SOCKET server = socket(AF_INET, SOCK_STREAM, 0);
int eServ = WSAStartup(MAKEWORD(2,2), &wsaData);
if(eServ != 0)
{
printf("WSAStartup failed: %d\n", eServ);
exit (1);
}
sockaddr_in sin;
sin.sin_port = htons(6000);
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
if(bind(server,(sockaddr*)&sin, sizeof(sin) == INVALID_SOCKET))
{
printf("bind failed: %d\n", WSAGetLastError());
WSACleanup();
exit (1);
}
if(listen(server,10)!=0)
{
printf("listen failed: %d\n", WSAGetLastError());
exit (1);
}
SOCKET client;
sockaddr_in from;
int fromlen=sizeof(from);
while(true)
{
client=accept(server,(sockaddr*)&from, &fromlen);
_beginthread(ClientThread, 0, (void*)(client));
}
_endthread();
_endthread();
exit(0);
}
The problem I am having problems with is
_beginthread(ClientThread, 0,(void*)(client));
It says undefined reference to 'ClientThread' I have referenced it though =[
any help?