您的位置:程序门 -> vc/mfc -> 网络编程



长链接接收报文的效率的问题。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


长链接接收报文的效率的问题。
发表于:2007-06-29 17:29:08 楼主
我的一个分布式系统的结构是这样的:
首先有两个服务器1和服务器2,服务器1同时作为服务2的一个客户端,服务器1发起一个连接跟服务器2建立一个长连接;

然后有多个客户端程序,跟服务器1建立短连接,就是说客户短程序发起报文给服务器1,服务器1再把这个报文通过服务器1跟服务器2之间已经建立的长连接发给服务器2,服务器2处理后,通过这个长连接发给服务器1,服务器1再把报文发给相应的客户端程序;客户端程序接收完报文,然后关闭跟服务器1的连接;

其实服务器1就是一个中转的用处,因为服务器2只允许有一个客户端的连接,所以只好采取这种中转的方式;

现在的问题是:服务器2接收服务器1送来的报文的效率的问题;服务器1送给服务器2的报文格式是:报文长度+报文内容;服务器2接收报文的时候首先接收报文长度,然后根据报文长度接收相应报文的内容;

服务器2针对服务器1的这个长连接,好像只能建立一个线程来接收报文,服务器2的接收缓冲区应当是这样的吧:报文长度1+报文内容1+报文长度2+报文内容2+.....这样一直排队下去的吧,如果在服务器2开启多个线程来接收报文,就会导致错乱了吧。比如说:线程1接收了报文长度1,线程2在接收报文2的长度2的时候反而接收到了报文1的内容,这样就很乱了;

请问这种情况下,在服务器2是否只能开启一个线程来接收报文?如果是这样的法,那服务器2的接收报文效率是不是很低了??


快速检索

最新资讯
热门点击