关于TClientSocket与TServerSocket连接时的用户验证问题!

yyuc20000 2005-08-16 10:13:33
我正在写一个网络服务程序,在有客户端连接时想判断客户端输入的用户名跟密码是否正确,但不知道将这段程序放在哪里比较合适??如果放在OnClientConnect事件中,由于客户端没有跟服务器端建立连接,所以客户端不能把用户名跟密码发送到服务器进行比较。如果放在OnAccept中,这时服务器跟客户端已经建立了连接,感觉上有点不妥。
请问各位高手还有什么办法吗??
...全文
198 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyuc20000 2005-08-19
  • 打赏
  • 举报
回复
我回去看了一下书,我觉得也应该放在onRead中比较合理一点。多谢各位!
chpst 2005-08-18
  • 打赏
  • 举报
回复
如果你的用户名密码在服务器端存有,你当然要在连接后从服务器端取得用户名,密码到客户端比较。
放在OnAccept是可以的,肯定要连接。


talkingmute 2005-08-18
  • 打赏
  • 举报
回复
呵呵,跟我前一段写的一个系统一样,放在OnRead事件中!
当客户端OnConnect事件发生时,再SendText把用户信息发过去,服务端通过OnRead来判定,如果不正确,直接Socket->Close;正确,返回。
netsys2 2005-08-18
  • 打赏
  • 举报
回复
应该放在OnRead中!

OnClientConnect、OnAccept都没有数据,你怎么来认证?


所以是在OnRead中。

预先设置一个初值先判断该链路是否通过认证。
bool uservalid;//对于多用户,应该设为数组
OnAccept
{
uservalid = false;
}

OnRead
{
先读数据
if( uservalid == false )
{
检查是否合法
如果不是,Socket->Close();
如果是,uservalid = true;
}
}
OnClose
{
uservalid = false;
}

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧