socket的身份验证(100分)

  • 主题发起人 主题发起人 笑江横
  • 开始时间 开始时间

笑江横

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ServerSocket做服务端,ClientSocket做客户端,当客户端连接服务端成功后,立即发送用户名和密码给服务端,服务端通过验证后返回成功给客户端,否则断开与客户端的连接。
问题是,如果我用别的程序连接服务端的时候,也可以与服务端建立连接,而且不发送用户名和密码,这样的话,服务端该如何断开这些不发送用户名和密码给它的连接?我这样的身份验证是否有问题?
 
使用API函数很容易实现的。可是用控件!!至少我不会!
 
你这样,发送密码成功后,由SERVER发送给一个CLIENT一个证书(或者编码)
以后用户提交其他信息的时候,必须以这个为验证头为头。。。
 
to:蓝叶菱
我是想断开那些没有发送用户名和密码的连接,因为那些连接不是我的客户端程序发出的。
ServerSocket和ClientSocket只要有IP地址和端口号就能建立连接,所以好像很难过滤不是我的客户端程序建立的连接。
 
你验证的时候,发送一个你自己程序的代号就可以了,你看ASTA源代码,就由发送的应用程序名称,这个就是确定是否是自己发送的信息。
主要在发送的字符,和接收的返回信息做文章。发送和接收的验证证书自己也要做好。
复杂的证书的可以使用数据结构,简单就是一个代号就可以了。
。。
 
数据传输加验证是没有问题的,但是那些不是我的客户端程序建立的连接,可以不发送数据,而一直保持连接,这样会使我的服务端因连接过多而浪费资源,因为我不知道ServerSocket究竟能连接多少个客户端,所以想尽量节约资源。
 
我想:
Socket方式的连接方式应该没有上限的。取决于服务器计算机的性能。
保持连接的时候,只是保持会话,不浪费计算机的。
如果一定要这样做的话,每次客户端发送数据的时候就关闭算了。你看DELPHI6的控件TCP控件,就是发送后关闭连接。
我看不要这样烦恼了。
个人见解。。
 
不是认证过的连接不理它
 
我的想法和你一样,每次客户端发送完数据的时候就关闭
 
多人接受答案了。
 
后退
顶部