Code:
#include <allegro.h>
#include <winalleg.h>
int getkeypress( void );
int getkeypress()
{
int tempchar;
switch(readkey() >> 8)
{
case KEY_A: return 1; break;
case KEY_B: return 2; break;
case KEY_C: return 3; break;
case KEY_D: return 4; break;
case KEY_E: return 5; break;
case KEY_F: return 6; break;
case KEY_G: return 7; break;
case KEY_H: return 8; break;
case KEY_I: return 9; break;
case KEY_J: return 10; break;
case KEY_K: return 11; break;
case KEY_L: return 12; break;
case KEY_M: return 13; break;
case KEY_N: return 14; break;
case KEY_O: return 15; break;
case KEY_P: return 16; break;
case KEY_Q: return 17; break;
case KEY_R: return 18; break;
case KEY_S: return 19; break;
case KEY_T: return 20; break;
case KEY_U: return 21; break;
case KEY_V: return 22; break;
case KEY_W: return 23; break;
case KEY_X: return 24; break;
case KEY_Y: return 25; break;
case KEY_Z: return 26; break;
case KEY_SPACE: return 98; break;
case KEY_BACKSPACE: return 99; break;
case KEY_ENTER: return 100; break;
}
if ((key[KEY_LSHIFT] && key[KEY_1]) || (key[KEY_RSHIFT] && key[KEY_1])) return 97;
return 0;
}
int main (void)
{
WORD sockVersion;
WSADATA wsaData;
int nret;
char buffer[256];
int tempstore;
int tx = 5;
int ty = 5;
int tspacing = 7;
int bufnum = 1;
allegro_init();
set_color_depth(16);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
install_keyboard();
sockVersion = MAKEWORD(1, 1);
WSAStartup(sockVersion, &wsaData);
SOCKET mysocketa1;
mysocketa1 = socket( AF_INET , SOCK_STREAM , IPPROTO_TCP );
SOCKADDR_IN serverInfo;
serverInfo.sin_family = AF_INET;
serverInfo.sin_port = htons(8888);
serverInfo.sin_addr.s_addr = inet_addr("10.1.50.30");
ZeroMemory(buffer, 256);
while (!key[KEY_ESC])
{
tempstore = getkeypress();
switch(tempstore)
{
case 1:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "a" );
buffer[bufnum]='a';
bufnum++;
tx = tx + tspacing;
break;
case 2:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "b" );
tx = tx + tspacing;
break;
case 3:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "c" );
tx = tx + tspacing;
break;
case 4:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "d" );
tx = tx + tspacing;
break;
case 5:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "e" );
tx = tx + tspacing;
break;
case 6:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "f" );
tx = tx + tspacing;
break;
case 7:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "g" );
tx = tx + tspacing;
break;
case 8:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "h" );
tx = tx + tspacing;
break;
case 9:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "i" );
tx = tx + tspacing;
break;
case 10:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "j" );
tx = tx + tspacing;
break;
case 11:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "k" );
tx = tx + tspacing;
break;
case 12:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "l" );
tx = tx + tspacing;
break;
case 13:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "m" );
tx = tx + tspacing;
break;
case 14:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "n" );
tx = tx + tspacing;
break;
case 15:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "o" );
tx = tx + tspacing;
break;
case 16:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "p" );
tx = tx + tspacing;
break;
case 17:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "q" );
tx = tx + tspacing;
break;
case 18:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "r" );
tx = tx + tspacing;
break;
case 19:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "s" );
tx = tx + tspacing;
break;
case 20:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "t" );
tx = tx + tspacing;
break;
case 21:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "u" );
tx = tx + tspacing;
break;
case 22:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "v" );
tx = tx + tspacing;
break;
case 23:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "w" );
tx = tx + tspacing;
break;
case 24:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "x" );
tx = tx + tspacing;
break;
case 25:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "y" );
tx = tx + tspacing;
break;
case 26:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "z" );
tx = tx + tspacing;
break;
case 97:
textprintf( screen , font , tx , ty , makecol(255,255,255) , "!" );
tx = tx + tspacing;
break;
case 98:
textprintf( screen , font , tx , ty , makecol(255,255,255) , " " );
tx = tx + tspacing;
break;
case 99:
tx = tx - tspacing;
textprintf( screen , font , tx , ty , makecol(255,255,255) , " " );
break;
case 100:
//enter code for "ENTER" here
//tx = tx - tspacing;
//textprintf( screen , font , tx , ty , makecol(255,255,255) , " " );
break;
}
};
textprintf( screen , font , 10 , 30 , makecol(255,255,255) , "reached this point" );
textprintf( screen , font , 10 , 50 , makecol(255,255,255) , "%s" , buffer);
while(!key[KEY_ENTER]){};
connect(mysocketa1, (LPSOCKADDR)&serverInfo , sizeof(struct sockaddr));
send( mysocketa1 , buffer , strlen(buffer) , 0 );
closesocket(mysocketa1);
WSACleanup();
allegro_exit();
}
END_OF_MAIN()
tried many methods, including ssharish's method. but cant get it to work.