C/S架构下,关于线程之间通讯的问题(C#语言)。
问题是这样的,我在做一个客户端登录,然后服务器处理客户端的信息并返回给客户端的实验,为了不影响客户端和服务器主线程的运转,客户端的监听和服务器的监听被分在了2个线程里,但...
问题是这样的,我在做一个客户端登录,然后服务器处理客户端的信息并返回给客户端的实验,为了不影响客户端和服务器主线程的运转,客户端的监听和服务器的监听被分在了2个线程里,但是当服务器接受信息之后还没处理(我打了断点)客户端这里就自动默认服务器传过来的是一个空的数据流,然后输出...请问这个要怎么解决?
展开
2个回答
展开全部
通讯中应该有TimeOut这样的设置,默认会是一个可以接受的值,就是不能让使用者等太久。你可以把这个值设大一点,这样Debug就不会有问题了。
但是服务器端和客户端应该不需要考虑这个问题,你Debug服务器端时,客户端的处理并不影响服务器端的代码。一个返回值,完全可以手动在客户端改一下,来测试客户端的处理是否正确。
但是服务器端和客户端应该不需要考虑这个问题,你Debug服务器端时,客户端的处理并不影响服务器端的代码。一个返回值,完全可以手动在客户端改一下,来测试客户端的处理是否正确。
追问
是这样的,我向服务器发送用户名和密码,然后服务器处理之后返回一个值(能否登陆),然后客户端接受这个值判断是否解锁,但是现在是我传给服务器时没问题,客户端监听服务器的返回值时就没有等服务器处理完而是自动默认服务器传过来的是空值,然后报错不能登录。
追答
你确定是返回值为空么?会不会你的线程还没有得到返回值就被杀掉了?或者你的子线程虽然正确得到了返回值,但是没有赋值给正确的变量,导致主线程里并没有取到子线程所取得返回值?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询