mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-23 04:32:50 -04:00
Fix crashing again.
This commit is contained in:
parent
155527e609
commit
e26cd5f960
@ -29,22 +29,23 @@ 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;
|
||||||
readonly SocketAsyncEventArgs sendArgs = new SocketAsyncEventArgs();
|
readonly SocketAsyncEventArgs sendArgs = new SocketAsyncEventArgs();
|
||||||
|
|
||||||
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);
|
sendArgs.UserToken = this;
|
||||||
recvArgs.Completed += recvCallback;
|
|
||||||
|
|
||||||
sendArgs.UserToken = this;
|
|
||||||
sendArgs.SetBuffer(sendBuffer, 0, sendBuffer.Length);
|
sendArgs.SetBuffer(sendBuffer, 0, sendBuffer.Length);
|
||||||
sendArgs.Completed += sendCallback;
|
}
|
||||||
|
|
||||||
|
public void RegisterCallbacks() {
|
||||||
|
recvArgs.Completed += recvCallback;
|
||||||
|
sendArgs.Completed += sendCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string RemoteIP {
|
public string RemoteIP {
|
||||||
|
@ -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.");
|
||||||
@ -115,7 +118,7 @@ namespace MCGalaxy {
|
|||||||
|
|
||||||
string viptitle =
|
string viptitle =
|
||||||
(devPrefix && isMod) ? string.Format("{0}[&aInfo{0}] ", color) :
|
(devPrefix && isMod) ? string.Format("{0}[&aInfo{0}] ", color) :
|
||||||
(devPrefix && isDev) ? string.Format("{0}[&9Dev{0}] ", color) : "";
|
(devPrefix && isDev) ? string.Format("{0}[&9Dev{0}] ", color) : "";
|
||||||
prefix = prefix + viptitle;
|
prefix = prefix + viptitle;
|
||||||
prefix = (title.Length == 0) ? prefix : prefix + color + "[" + titlecolor + title + color + "] ";
|
prefix = (title.Length == 0) ? prefix : prefix + color + "[" + titlecolor + title + color + "] ";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user