Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 网络协议的实现_C#_Design Patterns_Oop_Implementation_Network Protocols - Fatal编程技术网

C# 网络协议的实现

C# 网络协议的实现,c#,design-patterns,oop,implementation,network-protocols,C#,Design Patterns,Oop,Implementation,Network Protocols,我将要实现一个网络协议(特别是SFTP),我想知道是否有任何一般的经验法则可以遵循 目前,这似乎是一项艰巨的任务,我不知道从哪里开始 我正在寻找: 提示 最佳做法 可能的设计模式 经历 尽量使其适用于一般的网络协议 谢谢 我建议您看看这个库,它包括对SFTP的支持,并且是根据BSD风格的许可证发布的,所以您可以重用源代码,或者至少可以重用该项目中的想法 这里还有一些其他的答案(我几个月前看到过)提到了其中的SFTP支持的一些问题,但不确定这些问题是否仍然相关,而且无论哪种方式,它都可能是一个

我将要实现一个网络协议(特别是SFTP),我想知道是否有任何一般的经验法则可以遵循

目前,这似乎是一项艰巨的任务,我不知道从哪里开始

我正在寻找:

  • 提示
  • 最佳做法
  • 可能的设计模式
  • 经历
尽量使其适用于一般的网络协议

谢谢

我建议您看看这个库,它包括对SFTP的支持,并且是根据BSD风格的许可证发布的,所以您可以重用源代码,或者至少可以重用该项目中的想法


这里还有一些其他的答案(我几个月前看到过)提到了其中的SFTP支持的一些问题,但不确定这些问题是否仍然相关,而且无论哪种方式,它都可能是一个好的起点。

如果可能的话,我当然建议使用经过良好测试的库。特别是对于SFTP的SSH端,因为实现中的错误可能导致安全漏洞

你说,你看起来像是一个有经验的人,你可能发现没有一个图书馆是合适的,你应该考虑把你的网络实现分成自己的库,开放它有两个原因:

  • 如果它对你有用,它很可能对其他人有用
  • 您可能会得到一些有用的代码检查
  • 考虑到所有这些,要遵循的其他准则将与其他开发类似,但可能在安全性和测试方面更加严格。确保运行静态分析,并对故障案例进行单元测试

    另外:使用,但不要信任为您提供的较低层。如果有一个场景破坏了你的代码,你可以打赌网络最终会找到它

    希望这有帮助