為何Client端在第一次發送信息能收到回應,第二次發送信息後就無回應?在線等......

yydyqy 2003-01-10 12:55:04
在C/S結構中,Client端在第一次用套接字s發送信息(進行生份驗證)能收到回應,第

二次用s發送信息後就無回應?而再打開一客戶端程序發送信息後, 第一個客戶程序

收到回應, 但Server端又沒了回應, 再發送客戶信息後, 客戶端無響應, Server端

又有了回應, 如此反覆, 這昰為何?請那位大俠幫忙看一下, 不生感激!
...全文
23 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yydyqy 2003-01-11
  • 打赏
  • 举报
回复
第一次进来有数据
River_H 2003-01-10
  • 打赏
  • 举报
回复
第一次接受時, 我只是用Receive()函數將數據接收後將其中的某些字段(用戶名及密碼)與Server的用戶名及密碼比較, 若錯誤則返回錯續信息.

那如果不是第一次进来你有没有取数据呀?

我的意思是,在每一次到OnReceive函数中,都要读取一些数据,以便下次数据到来时再触发该函数。
yydyqy 2003-01-10
  • 打赏
  • 举报
回复
ExitWin(ExitWin), 當然沒有.
ExitWin 2003-01-10
  • 打赏
  • 举报
回复
你是不是第一次send完了。。
然后就close了
cowisdom 2003-01-10
  • 打赏
  • 举报
回复
我曾经为了方便也采用过Csocket,后来也出现了这种问题,解决的办法是在接收后,再发送信息s.send函数之前加一个调试断点(不需要改动任何代码),就能稳定接收和发送,除此之外,我尝试了很多种方法都一一失败,不知道你是不是也是这种情况,如果是,建议你改用Socket api 或者CSocket的父类。
yydyqy 2003-01-10
  • 打赏
  • 举报
回复
River_H(小河) ( ), 第一次接受時, 我只是用Receive()函數將數據接收後將其中的某些字段(用戶名及密碼)與Server的用戶名及密碼比較, 若錯誤則返回錯續信息, 有問題嗎? 謝謝!
River_H 2003-01-10
  • 打赏
  • 举报
回复
用MFC CSocket写你要注意,在第一次连接成功后发送数据,对方OnReceive函数会被调用。但是如果对方没有对接受到的数据进行过任何处理。那你再发送的数据并不会再次激发对方的OnReceive函数。为了避免这种情况,你可以在OnReceive函数中读取一个字节的内容。试试看可不可以。
yydyqy 2003-01-10
  • 打赏
  • 举报
回复
gauspican(gauspican), Server端在BOOL CWinThread::InitInstance()中的if (!PumpMessage())處出現問題, 應昰處理線程消息循環時出現問題, 但該如何解決?我昰首次做通信程序, 請多幫忙, 謝謝!
yydyqy 2003-01-10
  • 打赏
  • 举报
回复
用MFC CSocket类寫的, 昰不昰因為出現了阻塞?若是因為阻塞該如何解決?
gauspican 2003-01-10
  • 打赏
  • 举报
回复
"而再打開一客戶端程序發送信息後, 第一個客戶程序

收到回應, 但Server端"
1、socket乱了吧?
2、提交的事件有问题
3、不要开第二个client,只开一个,debug看看c/s两端的情况,有没有引发Event
xenogear 2003-01-10
  • 打赏
  • 举报
回复
用什么写的?socket api还是MFC socket类
应该你程序的问题,可能的话将代码贴出来。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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