TokenController 传输口以 Socket 为准

This commit is contained in:
WangQiang 2016-06-18 08:30:21 +00:00
parent ebae542c06
commit e68d5185e5
1 changed files with 17 additions and 13 deletions

View File

@ -201,32 +201,36 @@ TokenClient* AP0104::CreateClient()
// 创建连接服务器的Socket // 创建连接服务器的Socket
auto socket = Host->CreateSocket(tk->Protocol); auto socket = Host->CreateSocket(tk->Protocol);
socket->Remote.Port = tk->ServerPort; socket->Remote.Port = tk->ServerPort;
socket->Remote.Address = IPAddress(tk->ServerIP); socket->Remote.Address = IPAddress(tk->ServerIP);
socket->Server = tk->Server();
// 创建连接服务器的控制器 // 创建连接服务器的控制器
auto ctrl = new TokenController(); auto ctrl = new TokenController();
ctrl->Port = dynamic_cast<ITransport*>(socket); //ctrl->Port = dynamic_cast<ITransport*>(socket);
ctrl->Socket = socket;
// 创建客户端 // 创建客户端
auto client = new TokenClient(); auto client = new TokenClient();
client->Control = ctrl; client->Control = ctrl;
//client->Local = ctrl;` //client->Local = ctrl;
client->Cfg = tk; client->Cfg = tk;
// 如果是TCP需要再建立一个本地UDP // 如果是TCP需要再建立一个本地UDP
//if(tk->Protocol == ProtocolType::Tcp) //if(tk->Protocol == ProtocolType::Tcp)
{ {
// 建立一个监听内网的UDP Socket // 建立一个监听内网的UDP Socket
socket = Host->CreateSocket(ProtocolType::Udp); socket = Host->CreateSocket(ProtocolType::Udp);
socket->Remote.Port = 3355; // 广播端口。其实用哪一个都不重要,因为不会主动广播 socket->Remote.Port = 3355; // 广播端口。其实用哪一个都不重要,因为不会主动广播
socket->Remote.Address = IPAddress::Broadcast(); socket->Remote.Address = IPAddress::Broadcast();
socket->Local.Port = tk->Port; socket->Local.Port = tk->Port;
// 建立内网控制器 // 建立内网控制器
auto token2 = new TokenController(); auto token2 = new TokenController();
token2->Port = dynamic_cast<ITransport*>(socket); // token2->Port = dynamic_cast<ITransport*>(socket);
client->Local = token2; token2->Socket = socket;
token2->ShowRemote = true;
client->Local = token2;
} }
return client; return client;