现有一个项目,java做服务端,c#做客户端,通过Socket进行通信。功能主要是c#发送一个字符串给服务端,服务端返回对应的数据。现在遇到的问题是:由于起初对C#不了解,采用的方式就是发送在一次socket的send之后,recieve一次数据,并没有起一个线程不断的循环接收数据。现在要实现服务端主动发送通知给客户端,之前采用的方式就不可用了,现在就需要整体的调整。现在如果要起一个线程来recieve数据的话,由于客户端收到的数据会在不同窗体上展示,收到的数据就不清楚具体要给哪个窗体用。不知道如何解决这一问题。不知道有没有描述清楚,求助大家了,谢谢。
解决方案 »
- 如何操作数据库的类?
- 有一个关于触发器的问题,比较难说明,解决后献上我所有的分数
- 不显示删除回复显示所有回复显示星级回复显示得分回复 外观模式(Facade Pattern)-结构型模式的内容是什么?
- 一个关于网络通信发面的程序!!
- 一个简单正则的问题
- 类似与vb中chr()函数在c#中如何解决
- 关于DataGrid单击改变DataGridBoolColumn的状态!急!解决马上结贴!
- Help Me!
- SharpDevelop的窗体设计
- 高分求教,高手请进:关于控件设计的问题!!!!!!!
- using(){}的使用,关于webserver
- 在安装windows服务时 发生系统 5 拒绝访问,但是已经是系统管理员的权限了,有没有办法解决?
这就好比WebService接口中定义的方法名一下,不同的方法返回不同的数据
知道当前收到的数据是干什么用的,就应该知道是要给哪个窗体用,触发相应的事件
我说下WCF的回掉方法(起一个线程来接受)和普通方法(你现在的Send一下接受一下)是必须分开的
也就是说 WCF一个服务如果包含回掉方法 就不能有普通方法 有普通方法就不能有回掉方法
个人感觉 如果你要实现这种新的效果 就比如自己重新写一个通信
例如我的通信框架是服务器端监听两个端口
一个端口是普通方法另一个端口专门负责回掉方法
如果考虑效率的话 必须这样!
此处略去100字
刚才上面略去的想说一种新方法 但是不实用
也可以实现 要好多代码都要改 还要封装许多状态 而且要加上缓存 另外你发送的内容和接受的内容都要在封装
总体东西太多而且你所有的send和receiver方法都要改只能说你原来没想到要用到这种效果 设计的时候没想到
我想你搞反了,网络通信中所谓的长连接是利用socket来实现的,长连接要注意客户端的状态,通常可以用心跳包