本人想开发一类似问答式的socket程序,由于各种原因无法使用wcf、Net Remoting等,只能使用socket了。
程序是这样的,比如客户端发送A字符,服务端会返回一数据(延迟10s),发送B字符返回其他等,依次类推。
现在我客户端先后或者同时发送A和B字符,这样服务器会先后返回2次数据给我。但接收数据的代码是同一段,请问,我如何处理收到的数据?
本人表达能力不是很好,就是说,我想实现类似以下功能,则上面的问题就不存在了:send()能返回返回值,这返回值是服务器给的特殊的数据,这样我就不用通过Receive()来获取服务端的数据,上面的问题也就不存在了.
类似这种,请问应该怎么处理?或者有其他通信方法么?谢谢!
socket是底层的api,没有那么方便的功能。如果socket那么方便,wcf什么的就都可以去死了。
当然你要封装一下就会很方便了。类似于:
class MySocket
{
string send(string a)
{
socket.send(a);
return socket.receive();
}
}
首先感谢您的回答,但是这实际上是行不通的吧,比如我发送A到返回数据要10s,而发送B则立刻返回。如果我先发送A后立刻发送B,按照您那个的代码事实上返回的是B命令的数据吧
@Suyana: 当然不是