jdbc连接数据库,需要数据库打开特定的端口监听请求。
但如何指定client的ip和port呢?如果server只服务特定ip和端口的请求,并根据ip和port来维护这个长连接。
理论上jdk中的socket是可以指定ip和port的,所以应该有解决方案。以mysql为例,该驱动中是否提供了接口可以设置客户端的ip和端口?
可能我的描述重心错了,问题在客户端。
现在服务端已经实现只接受特定客户端ip和port的功能。而且服务端不可更改。
现在想用客户端连接服务端。因为jar包中客户端选用的ip和开启的端口是都随机的,随出来的端口不被服务端接受,也就无法建链。怎样才能让客户端使用特定的ip,开启固定的端口?
想到了连接池,如果只配置一条链接就可以复用,长连接也不会断掉。但还是不能指定端口。
提问时以mysql驱动为例,其实遇到的并不是jdbc,而是ldap协议,该协议与http类似,一次请求完毕就关闭了tcp链路,不满足server的要求。
openldap的客户端,不管是jdk中开放的接口,还是spring-ldap模块中的各种配置,都没有发现能够指定客户端ip和port的设置项。
dudu大人的确实可以,这样不用从业务逻辑上来划分!
该驱动中貌似没有!
1.我想到还有一个办法,应该可以通过过滤器来实现,request过来的时候我们就获取它的ip+port灵活性大点,那你就建立一个白名单的数据库表,检查是否为白名单中的ip+port ,是就提供一个connection,否就放弃!
不知可行否?
只能通过服务器的防火墙指定客户端IP