okay i`ll check it , but can you check this [ client side ] codes , i know its dumb but that what i can do for now ..Quote:
check this better
[Only registered and activated users can see links. Click Here To Register...]
SuperAids 's chat project
Code:
private void SERVER_CONNECT_BUTTON_Click(object sender, EventArgs e)
{
ConnectAuth();
}
Socket S_O_C_K_E_T;
public void ConnectAuth()
{
S_O_C_K_E_T = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Thread rec = new Thread(recMsg);
byte tries = 0;
while (tries < 3 && !S_O_C_K_E_T.Connected)
{
try
{
S_O_C_K_E_T.Connect("127.0.0.1", 9999);
break;
}
catch { }
tries++;
System.Threading.Thread.Sleep(2000);
}
if (!S_O_C_K_E_T.Connected)
{
MessageBox.Show("Connecting failed due to server maintenance or internet congestion. Please re-login later.");
}
else
{
LOGIN_BUTTON.Enabled = true;
rec.Start();
}
}
ushort ClientSocketPort;
string ChatSocketIP;
uint ClientID;
Jeel_Chat_Client.Network.Forward.ForwardType FT;
void recMsg()
{
while (S_O_C_K_E_T.Connected)
{
Thread.Sleep(500);
byte[] Buffer = new byte[1000];
S_O_C_K_E_T.Receive(Buffer, 0, Buffer.Length, 0);
ushort Length = BitConverter.ToUInt16(Buffer, 0);
ushort ID = BitConverter.ToUInt16(Buffer, 2);
if (ID == 1055)
{
Network.Forward Fw = new Network.Forward(Buffer);
Fw.Buffer = Buffer;
ClientID = Fw.Identifier;
ChatSocketIP = Fw.IP.Replace("\0", "").Split('\0')[0];
ClientSocketPort = Fw.Port;
FT = Fw.Type;
switch (FT)
{
case Network.Forward.ForwardType.Banned:
{
MessageBox.Show("The account is banned.");
break;
}
case Network.Forward.ForwardType.InvalidInfo:
{
MessageBox.Show("invalid account id or password!");
break;
}
case Network.Forward.ForwardType.Ready:
{
ConnectToChatSocket();
break;
}
default:
{
MessageBox.Show("Please try to log on later!");
break;
}
}
}
}
}
void ChatrecMsg()
{
while (S_O_C_K_E_T.Connected)
{
Thread.Sleep(500);
byte[] Buffer = new byte[1000];
S_O_C_K_E_T.Receive(Buffer, 0, Buffer.Length, 0);
ushort Length = BitConverter.ToUInt16(Buffer, 0);
ushort ID = BitConverter.ToUInt16(Buffer, 2);
if (ID == 1055)
{
Network.Forward Fw = new Network.Forward(Buffer);
Fw.Buffer = Buffer;
ClientID = Fw.Identifier;
ChatSocketIP = Fw.IP.Replace("\0", "").Split('\0')[0];
ClientSocketPort = Fw.Port;
FT = Fw.Type;
switch (FT)
{
case Network.Forward.ForwardType.Banned:
{
MessageBox.Show("The account is banned.");
break;
}
case Network.Forward.ForwardType.InvalidInfo:
{
MessageBox.Show("invalid account id or password!");
break;
}
case Network.Forward.ForwardType.Ready:
{
ConnectToChatSocket();
break;
}
default:
{
MessageBox.Show("Please try to log on later!");
break;
}
}
}
}
}
private void ConnectToChatSocket()
{
S_O_C_K_E_T = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Thread RecDem = new Thread(ChatrecMsg);
byte tries = 0;
while (tries < 3 && !S_O_C_K_E_T.Connected)
{
try
{
S_O_C_K_E_T.Connect(ChatSocketIP, ClientSocketPort);
break;
}
catch { }
tries++;
System.Threading.Thread.Sleep(2000);
}
if (!S_O_C_K_E_T.Connected)
{
MessageBox.Show("Connecting failed due to server maintenance or internet congestion. Please re-login later.");
}
else
{
LOGIN_BUTTON.Enabled = true;
RecDem.Start();
}
}
private void LOGIN_BUTTON_Click(object sender, EventArgs e)
{
Network.LoginPacket login = new Network.LoginPacket(true, USERNAME_BOX.Text, PASSWORD_BOX.Text);
Send(login.ToArray());
}
private void Send(Byte[] Buffer)
{
if (Buffer != null)
{
S_O_C_K_E_T.Send(Buffer);
}
}