|
@@ -135,31 +135,20 @@ namespace Pomelo.DotNetClient
|
|
|
};
|
|
|
socket.Client.Blocking = true;
|
|
|
|
|
|
- //connect
|
|
|
try
|
|
|
{
|
|
|
log.Debug("===========socket connect call socket.BeginConnect " + _NetInfo._host + ":" + _NetInfo._port);
|
|
|
_received_heartbeat();
|
|
|
- socket.BeginConnect(_NetInfo._host, _NetInfo._port, new AsyncCallback(OnConnect), socket);
|
|
|
+ conResult = socket.BeginConnect(_NetInfo._host, _NetInfo._port, new AsyncCallback(OnConnect), socket);
|
|
|
}
|
|
|
catch (Exception err)
|
|
|
{
|
|
|
if (err is SocketException)
|
|
|
{
|
|
|
JsonObject json = new JsonObject();
|
|
|
- switch ((err as SocketException).SocketErrorCode)
|
|
|
- {
|
|
|
- case SocketError.TimedOut:
|
|
|
- DoNetState(NetWorkState.TIMEOUT);
|
|
|
- json["s2c_code"] = 501;
|
|
|
- json["s2c_msg"] = err.Message;
|
|
|
- break;
|
|
|
- default:
|
|
|
- DoNetState(NetWorkState.ERROR);
|
|
|
- json["s2c_code"] = 500;
|
|
|
- json["s2c_msg"] = err.Message;
|
|
|
- break;
|
|
|
- }
|
|
|
+ DoNetState(NetWorkState.ERROR);
|
|
|
+ json["s2c_code"] = 500;
|
|
|
+ json["s2c_msg"] = err.Message;
|
|
|
listener.OnConnected(socket.Client, json);
|
|
|
}
|
|
|
else
|
|
@@ -170,6 +159,7 @@ namespace Pomelo.DotNetClient
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void OnConnect(IAsyncResult ar)
|
|
|
{
|
|
|
//reset stream
|
|
@@ -192,8 +182,6 @@ namespace Pomelo.DotNetClient
|
|
|
log.Debug("socket connect faile ");
|
|
|
this._set_net_state(NetWorkState.DISCONNECTED);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -229,8 +217,26 @@ namespace Pomelo.DotNetClient
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ IAsyncResult conResult;
|
|
|
+ private float conTime;
|
|
|
public virtual void update(float deltime)
|
|
|
{
|
|
|
+ if (mCurStatus == NetWorkState.CONNECTING)
|
|
|
+ {
|
|
|
+ conTime += deltime * 1000;
|
|
|
+ if (conTime > _NetInfo._timeout && conResult.IsCompleted == false)
|
|
|
+ {
|
|
|
+ conTime = 0;
|
|
|
+ socket.Client.Close();
|
|
|
+ socket.Close();
|
|
|
+ socket = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ conTime = 0;
|
|
|
+ }
|
|
|
+
|
|
|
ProcessMsg();
|
|
|
}
|
|
|
|
|
@@ -318,7 +324,6 @@ namespace Pomelo.DotNetClient
|
|
|
socket.Client.Shutdown(SocketShutdown.Both);
|
|
|
socket.Client.Close();
|
|
|
//socket.GetStream().Close();
|
|
|
-
|
|
|
socket.Close();
|
|
|
socket = null;
|
|
|
|