From 10f6b09bc397f1dd77b0d73716b5f914160e22ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=9F=B3=E5=A4=B4?= Date: Sun, 26 Feb 2017 14:22:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E9=99=A4=E5=AF=B9=E5=9F=BA=E7=B1=BBOb?= =?UTF-8?q?ject=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Version.cpp | 2 +- Net/NetUri.cpp | 24 +++++++++++++++--------- Net/NetUri.h | 7 ++++--- TokenNet/TokenClient.cpp | 4 ++-- TokenNet/TokenConfig.cpp | 2 +- 5 files changed, 23 insertions(+), 16 deletions(-) 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);