Code:
int ConnectToHost()
{
struct sockaddr_in ClientSAddr;
struct hostent *hp;
char ServerIP[15];
int RetValue;
int Address;
int status;
WSADATA wsaClient;
RetValue = WSAStartup(0x202, &wsaClient);
if(RetValue != 0)
{
AppendWindowText(hwndEditOut , "Cannot Load Winsock");
AppendWindowText(hwndEditOut , "\r\n");
}
SendMessage(hwndEditIPC , WM_GETTEXT , (WPARAM)sizeof(ServerIP) , (LPARAM)ServerIP);
SendMessage(hwndEditNickC , WM_GETTEXT , (WPARAM)sizeof(NicknameC) , (LPARAM)NicknameC);
Address = inet_addr(ServerIP);
hp = gethostbyaddr((const char*)&Address , 4 , AF_INET);
if(hp == NULL)
{
AppendWindowText(hwndEditOut , "Cannot Resolve the IP Address");
AppendWindowText(hwndEditOut , "\r\n");
return 0;
}
ClientSock = socket(AF_INET , SOCK_STREAM , 0);
memset(&ClientSAddr , sizeof(ClientSAddr) , 0);
ClientSAddr.sin_family = AF_INET;
ClientSAddr.sin_addr.s_addr = inet_addr(ServerIP);
ClientSAddr.sin_port = htons(1337);
status = connect(ClientSock, (struct sockaddr*) &ClientSAddr, sizeof(ClientSAddr));
if(status != 0)
{
AppendWindowText(hwndEditOut , "Not Connected");
AppendWindowText(hwndEditOut , "\r\n");
return 0;
}
return 0;
}
int SendPacket(char SendData[512])
{
send(ClientSock , (const char *) SendData , sizeof(SendData) , 0);
MessageBox(0 , SendData , "test" , 0);
return 0;
}
int HostServer(void)
{
struct sockaddr_in ServerSAddr , User;
char RecvData[512];
unsigned Userlen = 0;
int RecvVal;
SOCKET AcceptData;
WSADATA wsaData;
WSAStartup(0x202, &wsaData);
ServerSock = socket(AF_INET , SOCK_STREAM , 0);
memset(&ServerSAddr , sizeof(ServerSAddr) , 0);
ServerSAddr.sin_family = AF_INET;
ServerSAddr.sin_addr.s_addr = htonl(INADDR_ANY);
ServerSAddr.sin_port = htons(1337);
if(bind(ServerSock , (struct sockaddr*)&ServerSAddr , sizeof(ServerSAddr)) != 0)
{
AppendWindowText(hwndEditOut , "Could not bind the Socket");
AppendWindowText(hwndEditOut , "\r\n");
return 0;
}
listen(ServerSock , 5);
while(1)
{
Userlen = sizeof(User);
AcceptData = accept(ServerSock , (struct sockaddr*)&User , &Userlen);
RecvVal = recv(AcceptData , (const char *) RecvData , sizeof(RecvData) , 0);
if(RecvData[0] == 'd')
{
char NameData[20];
char TextData[256];
char Command[2];
int i;
sscanf(RecvData , "%s %s %s" , Command , NameData , TextData);
for(i = 0; i<strlen(TextData); i++)
{
if(TextData[i] == '_')
TextData[i] = ' ';
}
MessageBox(0 , NameData , "test" , 0);
MessageBox(0 , TextData , "test" , 0);
cf.crTextColor = RGB(NameColor1,NameColor2,NameColor3);
AppendWindowText(hwndEditOut , NameData);
AppendWindowText(hwndEditOut , "> ");
cf.crTextColor = RGB(TextColor1,TextColor2,TextColor3);
AppendWindowText(hwndEditOut , TextData);
AppendWindowText(hwndEditOut , "\r\n");
}
}
return 0;
}
the way im sending the actual data is like this.
Code:
if((HWND)lParam == hwndButtonSend)
{
char Data[512];
char NicknameC[20];
int i;
GetWindowText(hwndEditIn , EditInText , 300);
GetWindowText(hwndEditNickC , NicknameC , 20);
SetWindowText(hwndEditIn , "");
for(i = 0; i<strlen(EditInText); i++)
{
if(EditInText[i] == ' ')
EditInText[i] = '_';
}
sprintf(Data , "d %s %s" , NicknameC , EditInText);
MessageBox(0 , Data , "test" , 0);
SendPacket(Data);
}
the messagebox shows it is attempting to send the right data but when it gets there it is not right so im guessing there is a problem with how i am sending it.