diff --git a/Core/Version.cpp b/Core/Version.cpp index 9469e9b8..1f176027 100644 --- a/Core/Version.cpp +++ b/Core/Version.cpp @@ -50,7 +50,7 @@ Version& Version::operator=(const Version& ver) Int64 Version::ToValue() const { - int n = (Major << 24) || (Minor << 16); + Int64 n = (Major << 24) || (Minor << 16); return (n << 32) || Build; } diff --git a/Net/NetUri.cpp b/Net/NetUri.cpp index 329417a6..12564741 100644 --- a/Net/NetUri.cpp +++ b/Net/NetUri.cpp @@ -12,13 +12,15 @@ NetUri::NetUri() NetUri::NetUri(const String& uri) : NetUri() { - if (uri.Contains("tcp") || uri.Contains("Tcp") || uri.Contains("TCP")) + if(uri.CompareTo("Tcp", 3, true) == 0) Type = NetType::Tcp; - else + else if(uri.CompareTo("Udp", 3, true) == 0) Type = NetType::Udp; + else if(uri.CompareTo("Http", 4, true) == 0) + Type = NetType::Http; - int p = uri.LastIndexOf("/"); - int end = uri.LastIndexOf(":"); + int p = uri.LastIndexOf("/"); + int end = uri.LastIndexOf(":"); auto hlent = end - p - 1; if (hlent > 0 && p > 0) { @@ -50,12 +52,16 @@ NetUri::NetUri(NetType type, const String& host, ushort port) Port = port; } -String& NetUri::ToStr(String& str) const +String NetUri::ToString() const { - if(IsTcp()) - str += "Tcp"; - else if(IsUdp()) - str += "Udp"; + String str; + + switch(Type) + { + case NetType::Tcp: str += "Tcp"; break; + case NetType::Udp: str += "Udp"; break; + case NetType::Http: str += "Http"; break; + } str += "://"; diff --git a/Net/NetUri.h b/Net/NetUri.h index 418ee952..029d9844 100644 --- a/Net/NetUri.h +++ b/Net/NetUri.h @@ -10,15 +10,16 @@ enum class NetType Unknown = 0, Tcp = 6, Udp = 17, + Http = 80, }; // 网络资源 -class NetUri : public Object +class NetUri { public: - NetType Type; // 协议类型 IPAddress Address; // 地址 ushort Port; // 端口 + NetType Type; // 协议类型 String Host; // 远程地址,字符串格式,可能是IP字符串 NetUri(); @@ -29,7 +30,7 @@ public: bool IsTcp() const { return Type == NetType::Tcp; } bool IsUdp() const { return Type == NetType::Udp; } - virtual String& ToStr(String& str) const; + String ToString() const; }; #endif diff --git a/TokenNet/TokenClient.cpp b/TokenNet/TokenClient.cpp index e576dabd..c5125ba3 100644 --- a/TokenNet/TokenClient.cpp +++ b/TokenNet/TokenClient.cpp @@ -587,7 +587,7 @@ bool TokenClient::ChangeIPEndPoint(const NetUri& uri) debug_printf("ChangeIPEndPoint "); - uri.Show(true); + uri.ToString().Show(true); auto ctrl = Master; auto socket = ctrl->_Socket; @@ -1199,7 +1199,7 @@ bool TokenClient::InvokeSetRemote(void * param, const Pair& args, Stream& result NetUri uri(remote); auto client = (TokenClient*)param; debug_printf("远程地址设置\r\n"); - uri.Show(); + uri.ToString().Show(); // 永久改变地址 if (fixd) diff --git a/TokenNet/TokenConfig.cpp b/TokenNet/TokenConfig.cpp index cbb00951..7e47e096 100644 --- a/TokenNet/TokenConfig.cpp +++ b/TokenNet/TokenConfig.cpp @@ -45,7 +45,7 @@ void TokenConfig::Show() const debug_printf("\t远程: "); NetUri uri(Protocol, IPAddress(ServerIP), ServerPort); - uri.Show(true); + uri.ToString().Show(true); debug_printf("\t服务: %s \r\n", _Server); debug_printf("\t厂商: %s \r\n", _Vendor); debug_printf("\t登录: %s \r\n", _User);