【发布时间】:2013-06-23 21:31:16
【问题描述】:
我有一个基本的 IRC 客户端,它向服务器发送命令。在规范中它说 PASS 命令可以有 2 个数字回复 ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED
当我发送命令时,如果密码正确,则不会有回复,但如果密码不正确,我会得到两者之一。但是因为我的发送和接收是独立的,并且异步(使用等待异步)我没有可靠的方法来捕捉错误并停止发送NICK 和USER 或任何其他命令的发送例程。
所以我的问题是,什么是绑定读写的好方法,这样我可以在出现问题时立即停止,并且通常随时严格控制通信。
【问题讨论】:
-
当 PASS 正确时,您不会收到回复,否则您会收到错误消息,好吧,我会在继续之前使用 Socket.poll() 命令等待几秒钟。如果在那段时间内套接字是可读的,有一些数据,这意味着你有一个答案,这意味着它是一个错误的 PASS 或其他什么。
标签: c# sockets network-programming tcpclient irc