Fix crashing again.

This commit is contained in:
UnknownShadow200 2017-08-13 08:57:27 +10:00
parent 155527e609
commit e26cd5f960
2 changed files with 15 additions and 11 deletions

View File

@ -29,7 +29,7 @@ namespace MCGalaxy.Network {
int unprocessedLen; int unprocessedLen;
readonly SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs(); readonly SocketAsyncEventArgs recvArgs = new SocketAsyncEventArgs();
byte[] sendBuffer = new byte[1536]; byte[] sendBuffer = new byte[2048];
readonly object sendLock = new object(); readonly object sendLock = new object();
readonly Queue<byte[]> sendQueue = new Queue<byte[]>(64); readonly Queue<byte[]> sendQueue = new Queue<byte[]>(64);
volatile bool sendInProgress; volatile bool sendInProgress;
@ -37,13 +37,14 @@ namespace MCGalaxy.Network {
public TcpSocket(Player p, Socket s) { public TcpSocket(Player p, Socket s) {
player = p; socket = s; player = p; socket = s;
recvArgs.UserToken = this; recvArgs.UserToken = this;
recvArgs.SetBuffer(recvBuffer, 0, recvBuffer.Length); recvArgs.SetBuffer(recvBuffer, 0, recvBuffer.Length);
recvArgs.Completed += recvCallback;
sendArgs.UserToken = this; sendArgs.UserToken = this;
sendArgs.SetBuffer(sendBuffer, 0, sendBuffer.Length); sendArgs.SetBuffer(sendBuffer, 0, sendBuffer.Length);
}
public void RegisterCallbacks() {
recvArgs.Completed += recvCallback;
sendArgs.Completed += sendCallback; sendArgs.Completed += sendCallback;
} }

View File

@ -51,7 +51,10 @@ namespace MCGalaxy {
public Player(Socket s) { public Player(Socket s) {
spamChecker = new SpamChecker(this); spamChecker = new SpamChecker(this);
try { try {
Socket = new TcpSocket(this, s); TcpSocket tcp = new TcpSocket(this, s);
Socket = tcp;
tcp.RegisterCallbacks();
ip = Socket.RemoteIP; ip = Socket.RemoteIP;
SessionID = Interlocked.Increment(ref sessionCounter) & SessionIDMask; SessionID = Interlocked.Increment(ref sessionCounter) & SessionIDMask;
Logger.Log(LogType.UserActivity, ip + " connected to the server."); Logger.Log(LogType.UserActivity, ip + " connected to the server.");