如题,服务器在公网,客户端通过路由器上网,在内网。
广播的时候服务器会尝试连接客户端,但因为通过路由连接不上。
有没有什么好的解决方法?另外,.net remoting使用的是长连接还是短连接?如果是长连接,TCP是支持双向通讯的,能不能用一条链路来收发信息?我分用光了,谁能解答等以后有分一定送上。
谢谢大家了
广播的时候服务器会尝试连接客户端,但因为通过路由连接不上。
有没有什么好的解决方法?另外,.net remoting使用的是长连接还是短连接?如果是长连接,TCP是支持双向通讯的,能不能用一条链路来收发信息?我分用光了,谁能解答等以后有分一定送上。
谢谢大家了
不过回调的时候有些特殊的讲究。http://www.cnblogs.com/wayfarer/articles/75213.html
在局域测试的时候没问题,部署到公网之后就提示连接不到客户端端口,这才知道回调需要再用一条连接的,郁闷。
因为网上流行的remoting服务器事件都是双通道,而客户端在路由器未作端口转发的情况下,服务端不可能通过另一条通道调用客户端代理。
你应该改用Wcf的net.tcp双向通信或者Socket,不要在未经公网实践的文章上浪费时间。
服务器开启一个udp监听,客户端也开启一个udp监听 然后使用此udp的Socket向服务器定时(20秒)发送一个数据包,(被成为NAT穿透技术 P2P软件用的就是这个.) 服务器的udp接收到客户端的udp之后 只作为客户端心跳包处理, 当有数据需要发送到客户端的时候 直接使用此udp向客户端的地址(客户端发udp包到服务器时服务器记录下来客户端地址)发送udp数据, 客户端udp就能接收到了.我现在在做的一个项目,是群聊对讲软件,一个人说大家听,说用tcp说, 服务器把收到的数据udp分发.