C/S架构下,关于线程之间通讯的问题(C#语言)。

问题是这样的,我在做一个客户端登录,然后服务器处理客户端的信息并返回给客户端的实验,为了不影响客户端和服务器主线程的运转,客户端的监听和服务器的监听被分在了2个线程里,但... 问题是这样的,我在做一个客户端登录,然后服务器处理客户端的信息并返回给客户端的实验,为了不影响客户端和服务器主线程的运转,客户端的监听和服务器的监听被分在了2个线程里,但是当服务器接受信息之后还没处理(我打了断点)客户端这里就自动默认服务器传过来的是一个空的数据流,然后输出...请问这个要怎么解决? 展开
 我来答
lzh3452
2012-09-21 · TA获得超过1044个赞
知道小有建树答主
回答量:1168
采纳率:100%
帮助的人:846万
展开全部
通讯中应该有TimeOut这样的设置,默认会是一个可以接受的值,就是不能让使用者等太久。你可以把这个值设大一点,这样Debug就不会有问题了。
但是服务器端和客户端应该不需要考虑这个问题,你Debug服务器端时,客户端的处理并不影响服务器端的代码。一个返回值,完全可以手动在客户端改一下,来测试客户端的处理是否正确。
追问
是这样的,我向服务器发送用户名和密码,然后服务器处理之后返回一个值(能否登陆),然后客户端接受这个值判断是否解锁,但是现在是我传给服务器时没问题,客户端监听服务器的返回值时就没有等服务器处理完而是自动默认服务器传过来的是空值,然后报错不能登录。
追答
你确定是返回值为空么?会不会你的线程还没有得到返回值就被杀掉了?或者你的子线程虽然正确得到了返回值,但是没有赋值给正确的变量,导致主线程里并没有取到子线程所取得返回值?
周生008
2012-09-21 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:637万
展开全部
你的客户端的接收程序检查一下,正常是会等待的,估计接收程序那出了问题
追问
如果把客户端监听和服务器监听作为两个程序的主线程,就不是发生这个问题,但是这样两个程序就做不了其他的事情。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式