Пример #1
0
int sendMessages(void* socka)
{	int len, temp, n;
	char message[1024];
	UDPsoc sock = *(UDPsoc*)(socka);
	
	while(1)
    {	if(khit())
		{	printf("Send: ");
			onTheTable_len=6;
			for(n=0; (temp=gech())!='\n'; n++)
	        {	if(temp == '\b')
				{	n-=2;
					onTheTable_len--;
				}
				else
				{	message[n]=temp;
		        	onTheTable[6+n] = temp;
		        	onTheTable_len++;
				}
			}
			message[n]=0;			
			onTheTable_len=0;
			
	        //send message to client 
		    if(sock.Send(message,n+1)) 
		    	printf("\t\tEr ur\n"); 
		    
		    if(message[0]=='e' && message[1]=='n' && message[2]=='d' && message[3]==0)
		    	break;
		}
		SDL_Delay(10);
	}
	printf("Connection has been closed (by you). Press enter to quit.\n");
	SDL_KillThread(recvThread);
}
Пример #2
0
int BusyFileOpen(char *name, int wait)
{
  char *bsyname, *dir, *point;
  char temp[PATHLEN];
  int bfile;
  unsigned bs;

  /* Only use if FLAG_BSY is set, and FLAG_FRODO is *not* set. */

  if ((config.flag & FLAG_BSY)==0)
    return 0;

  bsyname=bsy_extension(name);
  
  /* Open the file with O_EXCL, such that the create fails if the file      *
   * already exists.                                                        */

  while ((bfile=cshopen(bsyname, O_EXCL | O_CREAT | O_WRONLY | O_BINARY))==-1)
  {
    if (!wait)
      return -1;

    dir=sstrdup(bsyname);
    
    point=strrchr(dir, PATH_DELIM);
    
    if (point)
      *point='\0';
    
    (void)make_dir(dir);
    free(dir);

    (void)sprintf(temp," (%s busy; wait)", name);
    (void)printf(temp);
    
    while (fexist(bsyname))
    {
      if (khit() && kgetch()==K_ESC)
        break;

      tdelay(200);
    }

    for (bs=strlen(temp); bs--; )
      (void)printf("\b \b");
  }

  if (bfile != -1)
    (void)close(bfile);
  
  free(bsyname);
  return 0;
}
Пример #3
0
static void CheckForPause(void)
{
   int ch = 0;

   if (khit())
      ch = inkey();

   if (!g_bRedirected && ((ch == 19) || (ch == ' ') ||     // <Ctrl-S> or <Space>
       (g_bPause && (g_nLines == g_nScreenLines-1))) )       // full screen
   {
      ch = ShowTextAndPause(g_szContinue);
      g_nLines = 0;
   }
   if ((ch == 27) ||       // <Esc>
       (ch == 3))          // <Ctrl-C>
   {
      fputs("\n", stdout);
      exit(1);
   }
}
Пример #4
0
static int ShowTextAndPause(char *szMsg)
{
   int ch;
   short sCol;
   unsigned rcSave;

   if (g_bRedirected)
      return(0);

   rcSave = GetCursorPos();
   sCol = (short)((g_nScreenCols - strlen(szMsg))/2);
   SetCursorPos(g_nScreenLines, sCol);
   OutText(szMsg);
   while (!khit());
   ch = inkey();
   SetCursorPos(g_nScreenLines, sCol);
   OutText(g_szBlanks);
   SetCursorPos(-1, rcSave);
   return(ch);
}