okay i think i fixed it up, but im still getting issues. the client won't connect and if it says it has connected the server isn't hearing anything.
Code:
#include <stdlib.h>
#include <stdio.h>
#include <nl.h>
#include <iostream.h>
#include <string>
#include <windows.h>
using namespace std;
//################VARS###################
int con; //listen or connect?
int test=0; // send this variable?
int n; // number of characters sent with thru write
//##############SOCKETS##################
NLsocket clientsoc;
NLsocket serversoc;
NLsocket newclientsoc;
NLsocket newserversoc;
//##############IP ADDRESS###############
NLbyte server[] = "24.150.89.91";
NLbyte client[] = "24.150.89.91";
NLushort serverport = 250;
NLaddress serveraddr; // host address
NLaddress clientaddr; // host address
//#############BUFFERS###################
NLbyte serverbuffer[32];
NLbyte clientbuffer[32];
NLenum type = NL_RELIABLE;
void init()
{
//INIT CODE//
nlInit(); // like allegro init stuff
nlSelectNetwork(NL_IP);
}
int serverproc()
{
// OPEN SERVERSOC
serversoc=nlOpen(0, NL_RELIABLE);
if(serversoc == NL_INVALID)
{
printf("Quit Due To Invalid Socket\n");
return 1;
}
if(nlListen(serversoc)==NL_INVALID) // LISTEN ON SERVERSOC
{
nlClose(serversoc);
printf("Quit Because Server Could Not Listen\n");
return 1;
}
while(1)
{
newserversoc = nlAcceptConnection(serversoc);//when someone connects accept it
//ATTEMPT TO LISTEN ON THE SERVERSOC IF YOU CAN'T THEN QUIT
if (nlAcceptConnection(serversoc) == NL_INVALID)
{
NLint err = nlGetError();
if( err == NL_SYSTEM_ERROR || err == NL_NOT_LISTEN)
{
printf("\n\nServer shutdown!!!!!!!!!!!!!\n");
return 0;
}
}else{
printf("Connection Established \n");
nlGetRemoteAddr(newserversoc, &clientaddr); // ask for the ip of connector
nlAddrToString(&clientaddr, client); //convert address to string (not needed)
printf(client,"\n ");
}
if((n=nlRead(newserversoc, serverbuffer, sizeof(serverbuffer)-1)) > 0)
{
serverbuffer[n] = '\0';
fputs(serverbuffer,stdout);
printf("recieved\n");
}else{
printf("nothing to read\n");
}
}
}
int clientproc()
{
//START CONNECTING
//cin>>server;
clientsoc=nlOpen(0, NL_RELIABLE);
nlStringToAddr(server, &serveraddr);
//nlSetAddrPort(&serveraddr, serverport);
printf("Now Connecting to: \n");
printf(server);
if(nlConnect(clientsoc, &serveraddr)==NL_FALSE)
{
printf("\nCLIENT: nlConnect error\n");
return 0;
}else if (nlConnect(clientsoc, &serveraddr)==NL_TRUE){
while(1)
{
memset(clientbuffer, 0, sizeof(clientbuffer));
test++;
memset(clientbuffer, test, sizeof(test));
nlWrite(clientsoc, clientbuffer, strlen(clientbuffer)+1);
printf("sent data..");
printf(server);
cout<<test;
printf("\n");
}
}
return 0;
}
int main()
{
init();
//START PROGRAM
cout<<"Listen(1) Or Connect(2)?";
cin>>con;
// LISTENING (SERVER)
if (con == 1 ){
serverproc();
}
//CONNECTING (CLIENT)
if (con == 2)
{
clientproc();
}else{
//exit program
}
nlShutdown(); //closes hawk library (allegro does this automatically)
return 0;
}