Skip to content

Commit

Permalink
add xo_app_client
Browse files Browse the repository at this point in the history
modify multi_server, add disconnect handler features
  • Loading branch information
Deer-WarLord committed Jun 21, 2012
1 parent 29664c8 commit 4f86bcd
Show file tree
Hide file tree
Showing 19 changed files with 64 additions and 12 deletions.
Binary file modified MultiServer/MultiServer.suo
Binary file not shown.
13 changes: 12 additions & 1 deletion MultiServer/MultiServer/Actions/NullAction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,21 @@ public class NullAction:IAction
{
private IConnection m_sender;
private string m_input_data;
private string m_message;

public NullAction()
{
m_message = "{\"error\":\"error\"}";
}

public NullAction(string message)
{
m_message = message;
}

public void Execute()
{
//stud
m_sender.Send(m_message);
}

public IConnection Sender
Expand Down
36 changes: 25 additions & 11 deletions MultiServer/MultiServer/Connections/AppSocketConnection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,30 +75,44 @@ private void onDataReceived(DataReceivedEventArgs e)

private void listen()
{
ConnectionSocket.BeginReceive(dataBuffer, 0, dataBuffer.Length, 0, readData, null);
try
{
ConnectionSocket.BeginReceive(dataBuffer, 0, dataBuffer.Length, 0, readData, null);
}
catch
{
var handler = Disconnected;


if (handler != null)
{ Disconnected(this, EventArgs.Empty); };
}
}

private void readData(IAsyncResult ar)
{
int sizeOfReceivedData = ConnectionSocket.EndReceive(ar);
try
{
int sizeOfReceivedData = ConnectionSocket.EndReceive(ar);


if (sizeOfReceivedData > 0)
{
dataString.Append(Encoding.UTF8.GetString(dataBuffer, 0, dataBuffer.Length));
int size = Encoding.UTF8.GetBytes(dataString.ToString().ToCharArray()).Length;
onDataReceived(new DataReceivedEventArgs(size, dataString.ToString()));
dataString = new StringBuilder();
listen();
if (sizeOfReceivedData > 0)
{
dataString.Append(Encoding.UTF8.GetString(dataBuffer, 0, sizeOfReceivedData));
int size = Encoding.UTF8.GetBytes(dataString.ToString().ToCharArray()).Length;
onDataReceived(new DataReceivedEventArgs(size, dataString.ToString()));
dataString = new StringBuilder();
listen();
}

}
else
catch(SocketException)
{
var handler = Disconnected;


if (handler != null)
{ Disconnected(this, EventArgs.Empty); }

}

}
Expand Down
15 changes: 15 additions & 0 deletions MultiServer/MultiServer/Game.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,21 @@ private void onDataReceived(IConnection sender, DataReceivedEventArgs e)
private void onDisconnect(IConnection sender, EventArgs e)
{
Console.WriteLine(sender.GUID + " disconnected");
int index = UserListStorage.inactiveUsers.FindIndex((current_user) => { return current_user.Connection.GUID == sender.GUID; });

if (index == -1)
{

int pair_index = UserListStorage.activeUsers.FindIndex((current_pair) =>
{
return (current_pair.User1.Connection.GUID == sender.GUID || current_pair.User2.Connection.GUID == sender.GUID);
});

IConnection notify_sender = (UserListStorage.activeUsers[pair_index].User1.Connection.GUID == sender.GUID) ?
UserListStorage.activeUsers[pair_index].User2.Connection : UserListStorage.activeUsers[pair_index].User1.Connection;

notify_sender.Send("{\"error\":\"your opponent disconnected\"}");
}
}

private void onConnect(IConnection sender, EventArgs e)
Expand Down
Binary file modified MultiServer/MultiServer/bin/Debug/MultiServer.dll
Binary file not shown.
Binary file modified MultiServer/MultiServer/bin/Debug/MultiServer.pdb
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,8 @@ c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\MultiServer\bin
c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\MultiServer\bin\Debug\MultiServer.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\MultiServer\obj\Debug\MultiServer.dll
c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\MultiServer\obj\Debug\MultiServer.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\MultiServer\bin\Debug\MultiServer.dll
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\MultiServer\bin\Debug\MultiServer.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\MultiServer\obj\Debug\ResolveAssemblyReference.cache
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\MultiServer\obj\Debug\MultiServer.dll
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\MultiServer\obj\Debug\MultiServer.pdb
Binary file modified MultiServer/MultiServer/obj/Debug/MultiServer.dll
Binary file not shown.
Binary file modified MultiServer/MultiServer/obj/Debug/MultiServer.pdb
Binary file not shown.
Binary file modified MultiServer/ServerDebug/bin/Debug/MultiServer.dll
Binary file not shown.
Binary file modified MultiServer/ServerDebug/bin/Debug/MultiServer.pdb
Binary file not shown.
Binary file modified MultiServer/ServerDebug/bin/Debug/ServerDebug.exe
Binary file not shown.
Binary file modified MultiServer/ServerDebug/bin/Debug/ServerDebug.pdb
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,10 @@ c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\ServerDebug\bin
c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\ServerDebug\bin\Debug\MultiServer.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\ServerDebug\obj\x86\Debug\ServerDebug.exe
c:\Users\Tioma\Documents\Visual Studio 2010\Projects\MultiServer\ServerDebug\obj\x86\Debug\ServerDebug.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\obj\x86\Debug\ServerDebug.exe
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\obj\x86\Debug\ServerDebug.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\bin\Debug\ServerDebug.exe
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\bin\Debug\ServerDebug.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\bin\Debug\MultiServer.dll
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\bin\Debug\MultiServer.pdb
c:\Users\Tioma\Documents\Visual Studio 2010\XO\MultiServer\ServerDebug\obj\x86\Debug\ResolveAssemblyReference.cache
Binary file modified MultiServer/ServerDebug/obj/x86/Debug/ServerDebug.exe
Binary file not shown.
Binary file modified MultiServer/ServerDebug/obj/x86/Debug/ServerDebug.pdb
Binary file not shown.

0 comments on commit 4f86bcd

Please sign in to comment.