【问题标题】:C# - Network Programming - Verify client before allowing connectionC# - 网络编程 - 在允许连接之前验证客户端
【发布时间】:2015-07-11 05:22:35
【问题描述】:

我是网络编程和stackoverflow的新手,所以我希望我不会犯任何严重的错误。

我尝试使用 TcpListener/TcpClient 编写客户端/服务器应用程序。但我不想接受每个尝试连接到服务器的客户端。

我不完全理解当客户端不发送请求时双方是否也保持连接,以及如何使用密码或其他方式验证客户端。我怎么能这样做?

我不希望有教程,但可能是一个很好的参考或 youtube 教程的链接,我在我的研究中找不到有用的东西。

谢谢你,fre3zr

【问题讨论】:

  • 这必须内置到更高的协议层——TCP没有这个概念。但是,如果您不希望更改协议层本身(它仍然相对容易受到许多其他攻击向量的攻击),您可以只侦听加密tunneling layer 背后的接口/端口,并要求客户端建立这样的手头有一条隧道。
  • 是的,与其完全不接受客户,不如接受它,询问密码,然后要么继续工作,要么拒绝它。

标签: c# network-programming client-server tcplistener


【解决方案1】:

TCP 协议的工作原理如下:要么接受连接,要么不接受。 接受后,您可以根据需要进行检查并拒绝客户。

伪代码:

Sock1.Accept()

If data then
    Store the received data in "X"
    If Password match "X" then continue, if not: KickClient()
End If

是的,客户端在您发送完数据后保持连接,您必须断开他的连接才能释放资源。

为您的问题添加代码,以便我们为您提供更多帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    相关资源
    最近更新 更多