Ejemplo n.º 1
0
Archivo: cmd.c Proyecto: sbenning42/42
void		cmd_handle(char *d, char *s, char **ep)
{
	if (!ft_strncmp("!givenv\n", s, 8))
		givenv(d, ep);
	else if (!ft_strncmp("!shut\n", s, 6))
		shut(d);
	else
	{
		ft_strncpy(d, "666\n", 4);
		return ;
	}
}
Ejemplo n.º 2
0
int s_recv()
{
	char* context = NULL;
	int result = recv(ConnectSocket, (char *)&recvbuf, recvbuflen, 0);
	if (result < 0)
	{
		shut();
		return -1;
	}

	filteredMsg = strtok_s(recvbuf, "\n", &context);
	return 1;
}
Ejemplo n.º 3
0
int main( int argc, char *argv[] )
{
  struct hvl_tune *tune;

  if( argc < 2 )
  {
    printf( "Usage: play_hvl <tune>\n" );
    return 0;
  }

  if( init() )
  {
    hvl_InitReplayer();
    tune = hvl_LoadTune( argv[1], FREQ, 2 );
    if( tune )
    {
      BOOL done;
      uint32 gotsigs;
      
      hvl_InitSubsong( tune, 0 );

      nextbuf = 0;
      mix_and_play( tune );

      done = FALSE;
      
      while( !done )
      {
        gotsigs = IExec->Wait( ahisig | SIGBREAKF_CTRL_C );
      
        if( gotsigs & ahisig ) mix_and_play( tune );
        if( gotsigs & SIGBREAKF_CTRL_C ) done = TRUE;
      }
      hvl_FreeTune( tune );
    }
  }
  shut();
  return 0;
}
Ejemplo n.º 4
0
int main( int argc, char *argv[] )
{
#ifdef __APPLE__
  char lofasz[1024];
  getwd(lofasz);
  printf("%s\n", lofasz);
  chdir(query_resource_directory());
  getwd(lofasz);
  printf("%s\n", lofasz);
#elif defined __HAIKU__
  chdir(dirname(argv[0]));
#endif

#ifdef __PSP__
    psp_init( );
#endif

  if( init() )
  {
    BOOL done, needrender, jletgoh, jletgov;

    paused = FALSE;
		jletgoh = FALSE;
		jletgov = FALSE;

    SDL_AddTimer( FPSTIME, timing, 0 );

    done = FALSE;
    needrender = FALSE;
    while( !done )
    {
      SDL_Event event;
      
      SDL_WaitEvent( &event );
      do {
        switch( event.type )
        {
					case SDL_JOYAXISMOTION:
						switch( what_are_we_doing )
  					{
						  case WAWD_GAME:
								switch( event.jaxis.axis )
							  {
								  case 0:
										if( event.jaxis.value < -3200 )
								  	{
										  jleft = TRUE;
											jright = FALSE;
										} else if( event.jaxis.value > 3200 ) {
											jleft = FALSE;
											jright = TRUE;
										} else {
											jleft = FALSE;
											jright = FALSE;
										}
										break;
								}

								gleft = pleft || jleft;
								gright = pright || jright;
								break;

              case WAWD_MENU:
								switch( event.jaxis.axis )
							  {
								  case 0:
										if( event.jaxis.value < -3200 )
									  {
										  if( !jletgoh ) menu_left();
											jletgoh = TRUE;
										} else if( event.jaxis.value > 3200 ) {
											if( !jletgoh ) menu_right();
                      jletgoh = TRUE;
										} else {
											jletgoh = FALSE;
										}
										break;
									
									case 1:
										if( event.jaxis.value < -3200 )
								  	{
										  if( !jletgov ) menu_up();
											jletgov = TRUE;
										} else if( event.jaxis.value > 3200 ) {
											if( !jletgov ) menu_down();
											jletgov = TRUE;
										} else {
											jletgov = FALSE;
										}
										break;
								}
								break;

	   				}
						break;
					
					case SDL_JOYBUTTONDOWN:
						switch( what_are_we_doing )
					  {
						  case WAWD_GAME:
								switch( event.jbutton.button )
								{
									case 0:
										jjump = TRUE;
										gjump = TRUE;
										break;									
								}
								break;
						}
						break;
					
					case SDL_JOYBUTTONUP:
						switch( what_are_we_doing )
					  {
						  case WAWD_GAME:
								switch( event.jbutton.button )
							  {
								  case 0:
										jjump = FALSE;
									  gjump = pjump;
										break;

									case 1:
										spacehit = TRUE;
										break;
									
									case 2:
										enterhit = TRUE;
										break;
								}
								break;
							
							case WAWD_TITLES:
								go_menus();
								break;

							case WAWD_MENU:
								done |= menu_do();
								break;

						  case WAWD_ENDING:
								if( endingstate < 9 )
								  endingstate = 11;
								break;
						}
						break;


					case SDL_MOUSEMOTION:
            mousx = event.motion.x/2;
            mousy = event.motion.y/2;
            break;

          case SDL_KEYDOWN:
            switch( what_are_we_doing )
            {
              case WAWD_TITLES:
                break;
              
              case WAWD_MENU:
                break;
              
              case WAWD_GAME:
                if( ( event.key.keysym.sym == keyleft ) ||
                    ( event.key.keysym.sym == keyleft2 ) )
                {
                  pleft = TRUE;
									gleft = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyright ) ||
                    ( event.key.keysym.sym == keyright2 ) )
                {
                  pright = TRUE;
									gright = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyjump ) ||
                    ( event.key.keysym.sym == keyjump2 ) )
                {
                  pjump = TRUE;
									gjump = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyuse ) ||
                    ( event.key.keysym.sym == keyuse2 ) )
                {
                  spacehit = TRUE;
                  break;
                }

                if( ( event.key.keysym.sym == keyhint ) ||
                    ( event.key.keysym.sym == keyhint2 ) )
                {
                  enterhit = TRUE;
                  break;
                }

                switch( event.key.keysym.sym )
                {
/*
									case 's':
                  case 'S':
                    {
                      FILE *f;
                      f = fopen( "deleteme.tmp", "wb" );
                      if( !f ) break;
                      fprintf( f, "%d %d", gid.x, gid.y );
                      fclose( f );
                    }
                    break;

                  case 'l':
                  case 'L':
                    {
                      FILE *f;
                      int x, y;
                      f = fopen( "deleteme.tmp", "rb" );
                      if( !f ) break;
                      if( fscanf( f, "%d %d", &x, &y ) == 2 )
                      {
                        gid.x = x;
                        gid.px = x>>8;
                        gid.y = y;
                        gid.py = y>>8;
                      }
                      fclose( f );
                      fgx = gid.px-160;
                      fgy = gid.py-140;
                    }
                    break;
*/

                  case SDLK_F11:
                  case SDLK_DELETE:   // Amiga keyboards have no F11, so also use DEL
                    if( musicon )
                    {
                      musicon = FALSE;
                      if( moozak ) Mix_FadeOutMusic( 500 );
                    } else {
                      musicon = TRUE;
                      if( moozak ) Mix_FadeInMusic( moozak, -1, 500 );
                    }
                    break;
                  
                  case SDLK_F12:
                  case SDLK_HELP:  // Amiga keyboards have no F12, so also use HELP
                    paused = !paused;
                    if( paused )
                      giddy_say( "Paused" );
                    break;
                  
                  default:
                    break;
                }
                break;
            }
            break;
          
          case SDL_KEYUP:
            switch( what_are_we_doing )
            {
						  case WAWD_ENDING:
								if( endingstate < 9 )
								  endingstate = 11;
								break;

							case WAWD_TITLES:
                go_menus();
                break;
              
              case WAWD_DEFINE_A_KEY:
                define_a_key( event.key.keysym.sym );
                break;

              case WAWD_MENU:
                switch( event.key.keysym.sym )
                {
                  case SDLK_UP:
                    menu_up();
                    break;
                  
                  case SDLK_DOWN:
                    menu_down();
                    break;
                  
                  case SDLK_LEFT:
                    menu_left();
                    break;
                  
                  case SDLK_RIGHT:
                    menu_right();
                    break;
                  
                  case SDLK_RETURN:
                  case SDLK_SPACE:
                    done |= menu_do();
                    break;
                  
                  case SDLK_ESCAPE:
                    done = TRUE;
                    break;
                  
                  default:
                    if( ( event.key.keysym.sym == keyjump ) || ( event.key.keysym.sym == keyjump2 ) ||
                        ( event.key.keysym.sym == keyhint ) || ( event.key.keysym.sym == keyhint2 ) ||
                        ( event.key.keysym.sym == keyuse  ) || ( event.key.keysym.sym == keyuse2  ) )
                    {
                      done |= menu_do();
                      break;
                    }
                    break;
                }
                break;
              
              case WAWD_GAME:
                if( ( event.key.keysym.sym == keyleft ) ||
                    ( event.key.keysym.sym == keyleft2 ) )
                {
                  pleft = FALSE;
									gleft = jleft;
                  break;
                }

                if( ( event.key.keysym.sym == keyright ) ||
                    ( event.key.keysym.sym == keyright2 ) )
                {
                  pright = FALSE;
									gright = jright;
                  break;
                }

                if( ( event.key.keysym.sym == keyjump ) ||
                    ( event.key.keysym.sym == keyjump2 ) )
                {
                  pjump = FALSE;
									gjump = jjump;
                  break;
                }

                switch( event.key.keysym.sym )
                {
                  case SDLK_ESCAPE:
                    titlestate = 0;
                    what_are_we_doing = WAWD_TITLES;
                    break;
                  
                  default:
                    break;
                }
                break;
            }
            break;

          case SDL_QUIT:
            done = TRUE;
            break;

          case SDL_USEREVENT:
            needrender = TRUE;
            break;
        }
      } while( SDL_PollEvent( &event ) );

      if( needrender )
      {
        needrender = FALSE;
        switch( what_are_we_doing )
        {
          case WAWD_TITLES:
          case WAWD_MENU:
          case WAWD_DEFINE_A_KEY:
            done |= render_titles();
            break;

          case WAWD_GAME:
            done |= render();
            break;
				
				  case WAWD_ENDING:
						done |= render_ending();
					  break;
        }
      }
    }
  }
  shut();
  return 0;
}
Ejemplo n.º 5
0
void XJudgerMain::closeEvent(QCloseEvent *){
	shut();
}
Ejemplo n.º 6
0
XJudgerMain::~XJudgerMain(void){
	shut();
}
Ejemplo n.º 7
0
XJudgerMain::XJudgerMain(QMainWindow *parent): QMainWindow(parent){
	//Basic Building
	CurrentDir = getCwd();
	if (objectName().isEmpty()) setObjectName("XJudgerMain");
	setGeometry((QApplication::desktop() -> width() - 800) / 2, (QApplication::desktop() -> height() - 600) / 2, 800, 600);
	QIcon WindowIcon;
	setWindowIcon(QIcon(":/Icons/XJudgerMain.png"));
    MainActionExit = new QAction(this);
    MainActionExit -> setObjectName("MainActionExit");
	MainActionAbout = new QAction(this);
	MainActionAbout -> setObjectName("MainActionAbout");
    CentralWidget = new QWidget(this);
    CentralWidget -> setObjectName("CentralWidget");
    TestForm = new XJudgerTest(this);
	ViewForm = new XJudgerView(this);
	setCentralWidget(CentralWidget);
    MenuBar = new QMenuBar(this);
    MenuBar -> setObjectName("MenuBar");
    MainMenuFile = new QMenu(MenuBar);
    MainMenuFile -> setObjectName("MainMenuFile");
	MainMenuHelp = new QMenu(MenuBar);
	MainMenuHelp -> setObjectName("MainMenuHelp");
    setMenuBar(MenuBar);
    StatusBar = new QStatusBar(this);
    StatusBar -> setObjectName("StatusBar");
    setStatusBar(StatusBar);
    MenuBar -> addAction(MainMenuFile -> menuAction());
    MainMenuFile -> addAction(MainActionExit);
    MenuBar -> addAction(MainMenuHelp -> menuAction());
	MainMenuHelp -> addAction(MainActionAbout);
	MainTab = new QTabWidget(this);
	MainTab -> setObjectName("MainTab");
	DataConfig = new DataInfo(CurrentDir);
	LayoutMain = new QGridLayout(CentralWidget);
	LayoutMain -> setObjectName("LayoutMain");
	LayoutMain -> addWidget(MainTab, 0, 0, 0, 0);
	
	//Building TabData
	TabData = new QWidget;
	TabData -> setObjectName(QString::fromUtf8("TabData"));
	MainTab -> addTab(TabData, QString::fromUtf8("Data"));
	GroupViewProb = new QGroupBox(TabData);
	GroupViewProb -> setObjectName(QString::fromUtf8("GroupViewProb"));
	GroupViewCase = new QGroupBox(TabData);
	GroupViewCase -> setObjectName(QString::fromUtf8("GroupViewCase"));
	GroupViewData = new QGroupBox(TabData);
	GroupViewData -> setObjectName(QString::fromUtf8("GroupViewData"));
	MainViewData = new TreeView(GroupViewData);
	MainViewData -> setObjectName(QString::fromUtf8("MainViewData"));
	MainViewData -> setMaximumWidth(200);

	TextProbName = new QPlainTextEdit(GroupViewProb);
	TextProbName -> setObjectName("TextProbName");
	TextProbName -> setMaximumHeight(30);
	TextProbName -> setTabChangesFocus(1);
	LabelProb = new QLabel(GroupViewProb);
	LabelProb -> setObjectName("LabelProb");
	LabelProb -> setText("Problem Name: ");
	TextInput = new QPlainTextEdit(GroupViewProb);
	TextInput -> setObjectName("TextInput");
	TextInput -> setMaximumHeight(30);
	TextInput -> setTabChangesFocus(1);
	LabelInput = new QLabel(GroupViewProb);
	LabelInput -> setObjectName("LabelInput");
	LabelInput -> setText("Input File Name: ");
	TextOutput = new QPlainTextEdit(GroupViewProb);
	TextOutput -> setObjectName("TextOutput");
	TextOutput -> setMaximumHeight(30);
	TextOutput -> setTabChangesFocus(1);
	LabelOutput = new QLabel(GroupViewProb);
	LabelOutput -> setObjectName("LabelOutput");
	LabelOutput -> setText("Output File Name: ");
	TextSource = new QPlainTextEdit(GroupViewProb);
	TextSource -> setObjectName("TextSource");
	TextSource -> setMaximumHeight(30);
	TextSource -> setTabChangesFocus(1);
	LabelSource = new QLabel(GroupViewProb);
	LabelSource -> setObjectName("LabelSource");
	LabelSource -> setText("Source File Name: ");
	
	LabelCaseInput = new QLabel(GroupViewCase);
	LabelCaseInput -> setObjectName("LabelCaseInput");
	LabelCaseInput -> setText("Input File Name: ");
	TextCaseInput = new QPlainTextEdit(GroupViewCase);
	TextCaseInput -> setObjectName("TextCaseInput");
	TextCaseInput -> setMaximumHeight(30);
	TextCaseInput -> setTabChangesFocus(1);
	LabelCaseOutput = new QLabel(GroupViewCase);
	LabelCaseOutput -> setObjectName("LabelCaseOutput");
	LabelCaseOutput -> setText("Output File Name: ");
	TextCaseOutput = new QPlainTextEdit(GroupViewProb);
	TextCaseOutput -> setObjectName("TextCaseOutput");
	TextCaseOutput -> setMaximumHeight(30);
	TextCaseOutput -> setTabChangesFocus(1);
	LabelCaseScore = new QLabel(GroupViewCase);
	LabelCaseScore -> setObjectName("LabelCaseScore");
	LabelCaseScore -> setText("Score: ");
	TextCaseScore = new QPlainTextEdit(GroupViewCase);
	TextCaseScore -> setObjectName("TextCaseScore");
	TextCaseScore -> setMaximumHeight(30);
	TextCaseScore -> setTabChangesFocus(1);
	LabelCaseTL = new QLabel(GroupViewCase);
	LabelCaseTL -> setObjectName("LabelCaseTL");
	LabelCaseTL -> setText("Time Limit (second): ");
	TextCaseTL = new QPlainTextEdit(GroupViewCase);
	TextCaseTL -> setObjectName("TextCaseTL");
	TextCaseTL -> setMaximumHeight(30);
	TextCaseTL -> setTabChangesFocus(1);
	LabelCaseML = new QLabel(GroupViewCase);
	LabelCaseML -> setObjectName("LabelCaseML");
	LabelCaseML -> setText("Memory Limit (kb): ");
	TextCaseML = new QPlainTextEdit(GroupViewCase);
	TextCaseML -> setObjectName("TextCaseML");
	TextCaseML -> setMaximumHeight(30);
	TextCaseML -> setTabChangesFocus(1);

	LayoutTabData = new QGridLayout(TabData);
	LayoutTabData -> setObjectName("LayoutTabData");
	LayoutTabData -> addWidget(GroupViewData, 0, 0, 10, 1, Qt::AlignLeft);
	LayoutTabData -> addWidget(GroupViewProb, 0, 1, 10, 1, Qt::AlignTop);
	LayoutTabData -> addWidget(GroupViewCase, 0, 1, 10, 1, Qt::AlignTop);
	GroupViewProb -> setVisible(0);
	GroupViewCase -> setVisible(0);
	LayoutGroupProb = new QGridLayout(GroupViewProb);
	LayoutGroupProb -> setObjectName("LayoutGroupProb");
	LayoutGroupProb -> addWidget(TextProbName, 0, 1, 1, 1);
	LayoutGroupProb -> addWidget(LabelProb, 0, 0, 1, 1);
	LayoutGroupProb -> addWidget(TextInput, 1, 1, 1, 1);
	LayoutGroupProb -> addWidget(LabelInput, 1, 0, 1, 1);
	LayoutGroupProb -> addWidget(TextOutput, 2, 1, 1, 1);
	LayoutGroupProb -> addWidget(LabelOutput, 2, 0, 1, 1);
	LayoutGroupProb -> addWidget(TextSource, 3, 1, 1, 1);
	LayoutGroupProb -> addWidget(LabelSource, 3, 0, 1, 1);
	LayoutGroupProb -> setSizeConstraint(QLayout::SetMinAndMaxSize);
	LayoutGroupData = new QGridLayout(GroupViewData);
	LayoutGroupData -> setObjectName("LayoutGroupData");
	LayoutGroupData -> setSizeConstraint(QLayout::SetMinAndMaxSize);
	LayoutGroupData -> addWidget(MainViewData, 0, 0, 1, 1);
	LayoutGroupCase = new QGridLayout(GroupViewCase);
	LayoutGroupCase -> setObjectName("LayoutGroupCase");
	LayoutGroupCase -> addWidget(TextCaseInput, 0, 1, 1, 1);
	LayoutGroupCase -> addWidget(LabelCaseInput, 0, 0, 1, 1);
	LayoutGroupCase -> addWidget(TextCaseOutput, 1, 1, 1, 1);
	LayoutGroupCase -> addWidget(LabelCaseOutput, 1, 0, 1, 1);
	LayoutGroupCase -> addWidget(TextCaseScore, 2, 1, 1, 1);
	LayoutGroupCase -> addWidget(LabelCaseScore, 2, 0, 1, 1);
	LayoutGroupCase -> addWidget(TextCaseTL, 3, 1, 1, 1);
	LayoutGroupCase -> addWidget(LabelCaseTL, 3, 0, 1, 1);
	LayoutGroupCase -> addWidget(TextCaseML, 4, 1, 1, 1);
	LayoutGroupCase -> addWidget(LabelCaseML, 4, 0, 1, 1);
	
	//Building TabTest
	TabTest = new QWidget;
	TabTest -> setObjectName(QString::fromUtf8("TabTest"));
	MainTab -> addTab(TabTest, QString::fromUtf8("Test"));
	MainViewScore = new TreeView(TabTest);
	MainViewScore -> setObjectName(QString::fromUtf8("MainViewScore"));
	MainViewScore -> setSelectionMode(QAbstractItemView::ExtendedSelection);
	MainViewScore -> setRootIsDecorated(0);
	MainViewScore -> setSortingEnabled(1);
	MainButtonTest = new QPushButton(TabTest);
	MainButtonTest -> setObjectName(QString::fromUtf8("MainButtonTest"));
	MainButtonTestAll = new QPushButton(TabTest);
	MainButtonTestAll -> setObjectName(QString::fromUtf8("MainButtonTestAll"));
    MainButtonRefresh = new QPushButton(TabTest);
	MainButtonRefresh -> setObjectName(QString::fromUtf8("MainButtonRefresh"));
	LayoutTabTest = new QGridLayout(TabTest);
	LayoutTabTest -> setObjectName("LayoutTabTest");
	LayoutTabTest -> addWidget(MainViewScore, 0, 0, 1, 4);
	LayoutTabTest -> addWidget(MainButtonTest, 1, 0, 1, 1);
	LayoutTabTest -> addWidget(MainButtonTestAll, 1, 1, 1, 1);
	LayoutTabTest -> addWidget(MainButtonRefresh, 1, 2, 1, 1);
	
	//Building MenuData
	MenuData = new QMenu(this);
	MenuData -> setObjectName("MenuData");
	MainViewData -> setMenu(MenuData);
	QAction *ActProbInsert = MenuData -> addAction("Insert Problem");
	QAction *ActProbRemove = MenuData -> addAction("Remove Problem");
	MenuData -> addSeparator();
	QAction *ActCaseInsert = MenuData -> addAction("Insert Test Case");
	QAction *ActCaseRemove = MenuData -> addAction("Remove Test Case");
	MenuData -> addSeparator();
	QAction *ActConfigCase = MenuData -> addAction("Automatically Configing Test Cases");

	//Set Title
    setWindowTitle(ProjectName " - " MainVersion " - " VersionNumber);
    MainActionExit -> setText("Exit");
	MainActionAbout -> setText("About");
    MainMenuFile -> setTitle("File");
	MainMenuHelp -> setTitle("Help");
    MainButtonTest -> setText("Test");
    MainButtonTestAll -> setText("Test All");
    MainButtonRefresh -> setText("Refresh");
	
	//Connecting Objects
	connect(MainActionExit, SIGNAL(triggered()), this, SLOT(shut()));
	connect(MainActionAbout, SIGNAL(triggered()), this, SLOT(showAbout()));
	connect(ActProbInsert, SIGNAL(triggered()), this, SLOT(insertProblem()));
	connect(ActProbRemove, SIGNAL(triggered()), this, SLOT(removeProblem()));
	connect(ActCaseInsert, SIGNAL(triggered()), this, SLOT(insertTestCase()));
	connect(ActCaseRemove, SIGNAL(triggered()), this, SLOT(removeTestCase()));
	connect(ActConfigCase, SIGNAL(triggered()), this, SLOT(configTestCase()));
	connect(MainButtonTest, SIGNAL(clicked()), this, SLOT(testSelUser()));
	connect(MainButtonTestAll, SIGNAL(clicked()), this, SLOT(testAllUser()));
	connect(MainButtonRefresh, SIGNAL(clicked()), this, SLOT(scoreRefresh()));
	connect(MainViewData, SIGNAL(leftClicked()), this, SLOT(showProbCase()));
	connect(MainViewData, SIGNAL(rightClicked()), this, SLOT(showProbCase()));
	connect(MainViewData, SIGNAL(keyPressed(int)), this, SLOT(showProbCase()));
	connect(MainViewScore, SIGNAL(doubleClicked()), this, SLOT(viewUserInfo()));
	//Connect to Case Change
	connect(TextCaseInput, SIGNAL(textChanged()), this, SLOT(updateTestCase()));
	connect(TextCaseScore, SIGNAL(textChanged()), this, SLOT(updateTestCase()));
	connect(TextCaseOutput, SIGNAL(textChanged()), this, SLOT(updateTestCase()));
	connect(TextCaseTL, SIGNAL(textChanged()), this, SLOT(updateTestCase()));
	connect(TextCaseML, SIGNAL(textChanged()), this, SLOT(updateTestCase()));
	//Connect to Problem Change
	connect(TextInput, SIGNAL(textChanged()), this, SLOT(updateProblem()));
	connect(TextSource, SIGNAL(textChanged()), this, SLOT(updateProblem()));
	connect(TextOutput, SIGNAL(textChanged()), this, SLOT(updateProblem()));
	connect(TextProbName, SIGNAL(textChanged()), this, SLOT(updateProblem()));
	
	//List -- Show Objects
	updateDir();
	showData();
}
Ejemplo n.º 8
0
	DownloadMgr::~DownloadMgr()
	{
		shut();
	}
Ejemplo n.º 9
0
int main(int argc, char **argv)
{
	WSADATA wsaData;

	char *sendbuf = "this is a test";
	char recvbuf[DEFAULT_BUFLEN];
	int iResult;
	int recvbuflen = DEFAULT_BUFLEN;
	char IP[15] = "127.0.0.1";
	char input[128];
	int port = -1;
	struct sockaddr_in addr;
	u_short len;
	char lenMsg[3] = "12\n";

	// Initialize Winsock
	iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
	if (iResult != 0) {
		printf("WSAStartup failed with error: %d\n", iResult);
		return 1;
	}

	printf("Started client process\n");
	printf("Please enter IP for client process(localhost by default): ");
	gets(IP);
	if (!strcmp(IP, ""))
		strncpy_s(IP, 10, "127.0.0.1", 9);
	printf("Please enter port number: ");
	gets(input);
	port = atoi(input);
	if (port <= 0)
	{
		printf("Invalid port number entered, leaving process\n");
		return 1;
	}

	printf("client process using address: tcp://%s:%d\n", IP, port);

	addr.sin_family = AF_INET;
	addr.sin_port = htons(port);
	if (inet_pton(AF_INET, &IP, &addr.sin_addr) != 1)
		printf("Error in code\n");

	// Create a SOCKET for connecting to server
	ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if (ConnectSocket == INVALID_SOCKET) {
		printf("socket failed with error: %ld\n", WSAGetLastError());
		WSACleanup();
		return 1;
	}
	printf("client: connecting to socket...");
	// Connect to server.
	iResult = connect(ConnectSocket, (struct sockaddr *)&addr, sizeof(addr));
	if (iResult == SOCKET_ERROR) {
		closesocket(ConnectSocket);
		ConnectSocket = INVALID_SOCKET;
	}

	if (ConnectSocket == INVALID_SOCKET) {
		printf("Unable to connect to server!\n");
		WSACleanup();
		return 1;
	}

	printf("Connected.\nClient: waiting for welcome message.\n");
	if (s_recv() < 0)
	{	
		printf("Client: error recieving message. Closing. \n");
		shut();
		return 0;
	}
	printf("Recieved: %s.\n", filteredMsg);
	if (strcmp(filteredMsg, "welcome") != 0)
	{
		printf("Recieved unknown message, Closing\n.");
		shut();
		return 0;
	}

	printf("Client, please enter ID number:");
	gets(input);

	if (s_send(input))
	{
		shut();
		return 0;
	}

	printf("please enter name: ");
	gets(input);
	if (s_send(input))
	{
		shut();
		return 0;
	}
	if (s_recv() < 0)
	{
		printf("Client: error recieving message. Closing. \n");
		shut();
		return 0;
	}
	if (!strcmp(filteredMsg, "failure"))
	{
		printf("Incorrect ID/name combination. Closing");
		shut();
		return 0;
	}
	else if (strcmp(filteredMsg, "success") != 0)
	{
		printf("Recieved unknown message, Closing\n.");
		shut();
		return 0;
	}

	printf("Client: found pair in server.\n");
	printf("Please enter password: "******"send failed with error: %d\n", WSAGetLastError());
		closesocket(ConnectSocket);
		WSACleanup();
		gets(input);
		return 1;
	}

	input[strlen(input)] = '\n';
	if (s_send(input))
	{
		shut();
		gets(input);
		return 0;
	}
	if (s_recv() < 0)
	{
		printf("Client: error recieving message. Closing. \n");
		shut();
		gets(input);
		return 0;
	}

	printf("%s\n", filteredMsg);
	shut();
	//if (s_recv() < 0)
	//{
	//	printf("Client: error recieving message. Closing. \n");
	//	shut();
	//	return 0;
	//}
	//// cleanup
	gets(input);
	return 0;
}