我正在寻找通过远程桌面连接连接到另一台计算机并检查连接是否成功的代码。
我记录了数据包,发现有一个银河系的数据包,所以我想知道是否有一些简单的代码。
我想向您寻求帮助:有人知道如何通过 tcpdump 检测思科发现协议吗?
目前我正在使用以下命令,但我不确定:
tcpdump -i eth0 -nn "ether[20:2]==0x2000"
Run Code Online (Sandbox Code Playgroud)
一些提示值得赞赏。谢谢 ...
恰克
我正在阅读有关 SSL 工作原理的信息,并尝试与 google pop3 server 执行握手pop.gmail.com 995
。我在那里找到了客户端问候消息的示例。所以,我连接到 gmail pop 3 服务器
telnet pop.gmail.com 995
Run Code Online (Sandbox Code Playgroud)
没关系。现在我可以向服务器发送消息了。据我了解,我需要做的第一件事是发送客户端问候消息。因此,我输入以下行(\r\n
为了简化阅读,我将在标记后换行):
ClientVersion 3,1\r\nClientRandom[32]\r\n
SessionID: None (new session)\r\n
Suggested Cipher Suites:\r\n
TLS_RSA_WITH_3DES_EDE_CBC_SHA\r\n
TLS_RSA_WITH_DES_CBC_SHA\r\n
Suggested Compression Algorithm: NONE
Run Code Online (Sandbox Code Playgroud)
按 Enter 键并接收消息
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
怎么了?我应该收到服务器问候消息吗?我要发送什么才能收到它?
我正在使用带有一些可选方法的协议
#import <UIKit/UIKit.h>
@class TextViewTableViewCell;
@protocol TextViewTableViewCellDelegate
@optional
- (void)textViewDidChange:(UITextView *)textView forIndexPath:(NSIndexPath *)indexPath;
- (void)textViewTableViewCellDoneTyping:(UITextView *)textView forIndexPath:(NSIndexPath *)indexPath;
- (BOOL)shouldChangeEditTextCellText:(TextViewTableViewCell *)cell newText:(NSString *)newText;
@end
@interface TextViewTableViewCell : UITableViewCell <UITextViewDelegate>
Run Code Online (Sandbox Code Playgroud)
但如果我使用我实现此协议的类中的任何函数,它就会崩溃
我不知道为什么会发生这种情况。据我所知,可选方法并不是强制使用的。
当调用委托函数并且我们调用协议方法时,它会导致该方法崩溃
- (void)textViewDidChange:(UITextView *)textView
{
[self.delegate textViewDidChange:self.textView forIndexPath:self.indexPath];
}
Run Code Online (Sandbox Code Playgroud) 我知道有很多问题都是这样开始的。但是,这是我的代码片段:
protocol AProt { var a:Int { get set } }
protocol BProt { var b:Int { get set } }
protocol CProt { var c:Int { get set } }
class A:AProt, CProt { var a = 1; var c = 3 }
class B:BProt, CProt { var b = 2; var c = 30 }
var a = A()
var b = B()
var c = a as CProt // works
c.c = 123
a = c as! …
Run Code Online (Sandbox Code Playgroud) 请解释如何在 swift 中使用哈希协议。Apple 将 hashable 定义为“一种提供整数和哈希值的类型”。好的,但什么是哈希值?
所以我遇到了协议的主题,我在互联网上搜索了很多答案,但我找不到一个,至少一个解决了我的问题。
所以我明白协议是方法、属性等的“蓝图”,它可以在类或结构中实现,并且它需要符合其要求等,但为什么要使用一个?
我的意思是你也可以在结构本身内创建一个函数。编写协议似乎有点麻烦,然后为了实现所述协议,这次您必须使用更多代码再次编写所有要求。
人们使用协议有什么特别的原因吗?是为了您的代码安全还是出于其他原因?
例如:
在 swift 中,你有 CustomStringConvertible 协议,它有一个必需的计算属性来控制如何将自定义类型表示为可打印的 String 值,但你也可以在你的类中创建一个函数来解决这个问题。您甚至可以在不实现此协议的情况下计算出与此协议相同的属性。
因此,如果有人可以对这个主题有所了解,那就太好了。
先感谢您!
通过在 Windows 注册表中定义自定义 URI 方案,单击 HTML 链接(在 chrome 中)时,我想在其默认软件中打开本地文件。我为注册表规则定义和我使用的链接尝试了许多不同的语法。我的默认 .reg 文件如下所示:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\test]
"URL Protocol"=""
@="URL:test Protocol"
"DefaultIcon"="\"C:\\Windows\\system32\\notepad.exe\",1"
[HKEY_CLASSES_ROOT\test\shell]
[HKEY_CLASSES_ROOT\test\shell\open]
[HKEY_CLASSES_ROOT\test\shell\open\command]
@="\"C:\\Windows\\system32\\notepad.exe\" \"%1\""
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我能找到的 %1, %*, "%1" "%2" 的每个例子......现在我只是尝试使用记事本,尽管最终我想使用 explorer.exe打开指定类型文件的默认软件。
我的 HTML 文件是:
<a href="test:C:test.txt">Open</a>
Run Code Online (Sandbox Code Playgroud)
我试过 test://C:[...]、test:///C:[...],并在文件路径中使用斜杠和反斜杠。
使用上述 2 个版本,记事本打开,但我收到“文件名、目录名或卷标语法不正确”。(我将我的文件放在 C 驱动器根目录中以确保避免使用任何特殊字符)
另外,如果我定义文件的直接路径而不是参数字符串:@="\"C:\Windows\explorer.exe\" \"C:\test.txt\"" ,文件打开没有任何问题.
我究竟做错了什么 ?有没有办法查看作为参数接收的字符串?
更新 我修改了注册表项以使用回显命令调用一个简单的批处理文件(“C:\test.bat”%1)来查看接收到的参数(回显 %1 暂停)。默认情况下传递整个 URI(例如: "test:C:\test.txt" )。我发现如果我在方案后面放一个逗号,批处理文件会收到 2 个参数:%1="test:" & %2="C:\test.txt"。但是注册表项值仍然需要有“%1”...
“%2”在进入批处理文件之前不包含任何内容。很遗憾,我不能直接调用 '"app.exe" %2' 并且需要从 .bat 调用它,如果找到解决方案,我会更新。
我有以下片段:
protocol MyProtocol: Identifiable where ID == UUID {
var id: UUID { get }
}
var test: [MyProtocol] = []
Run Code Online (Sandbox Code Playgroud)
协议“MyProtocol”只能用作通用约束,因为它具有 Self 或关联类型要求
为什么这不起作用?不应该where ID == UUID
消除错误所涉及的歧义吗?我在这里错过了什么吗?
我认为这个问题类似于这个问题:Usage of protocols as array types and function parameters in swift
但是,我会认为添加where ID == UUID
应该可以解决问题?为什么不是这样?
谢谢!
因此,在试验SwiftUI
和构建数据模型时出现了这个问题。我一直将类用于任何类型的数据模型,但似乎SwiftUI
想让您尽可能频繁地使用结构(我仍然不知道这在现实中是如何可能的,但这就是我尝试使用它的原因)。
在这种特殊情况下,我尝试让管理器包含所有符合MyProtocol
. 例如:
protocol MyProtocol: Identifiable where ID == UUID {
var id: UUID { get }
}
struct A: MyProtocol { // First …
Run Code Online (Sandbox Code Playgroud) 如果我想遵守协议并且协议定义了我不喜欢的属性名称怎么办?
例如:
struct Currency: Identifiable {
let id: String
let rate: Double
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,为“id”属性提供一个更有意义的名称会很棒。所以我希望能够做这样的事情:
struct Currency: Identifiable {
propertyalias iso = id
let iso: String
let rate: Double
}
Run Code Online (Sandbox Code Playgroud) protocols ×10
swift ×5
c++ ×1
cisco ×1
connection ×1
discovery ×1
hashable ×1
ios ×1
local ×1
networking ×1
objective-c ×1
registry ×1
ssl ×1
tcp ×1
tcpdump ×1
telnet ×1
url-scheme ×1
windows ×1