我最近也需要实现一个功能:
1)一个客户端(192.168.0.15),10个服务端(提供A接口、B接口)如下:
192.168.0.1-5685
192.168.0.2-5685
192.168.0.3-5685
.......
2)在客户端通过httpwebrequest循环遍历向10个服务端调用接口,先调用A接口,再调用B接口;
想要实现效果:
1、因为客户现场的端口是有限制的,未开发Any端口,因此客户端发送的http请求的端口必须未固定的(5600),通过Wareshark抓包必须为5600.
2、通过netstat-ano|findstr 5600确实是客户端进程。
实现思路:
1、【客户端】向不同的服务发送http请求由不同的httpwebquest实现,向同一服务发送多个请求后关闭连接;
2、【服务端】未采用配置文件方式加载,设置ServiceHost的属性、行为等方式实现;A接口为GET请求,B接口为POST请求;
3、设置httpwebrequest.servicepoint.bindipendpointdelegate,绑定为192.168.0.15-5600;
问题:
1、设置httpwebrequest.servicepoint.BindIPEndPointDelegate(192.168.0.5-5600) 后向192.168.0.1-5685发送请求ok,但是无法想向192.168.0.1-5685发送请求,程序一直挂在getrespone(), 调试发现后续的请求全未正常执行。
2、如何让后续的192.168.0.2——192.168.0.10都能正常执行。
备注:上述功能采用Socket编程方式可实现,设置Socket的端口复用属性。