java和本机网络连接的问题

1.通过WINAPI的InternetGetConnectedState来获得本机是否连上Internet网.

2.通过WINAPI的InternetGetConnectedStateEx来获得详细信息,msdn上的说明有误

BOOL InternetGetConnectedStateEx( __out LPDWORD lpdwFlags, __out LPTSTR lpszConnectionName, __in DWORD dwNameLen, __in DWORD dwReserved );  msdn上说第一个参数返回本机用什么类型的链接,如LAN或者RAS,第二个返回链接的名称,对于LAN连接来说是错的,返回的不是连接的名称而是连接的类型,如LAN连接,并不是在网络邻居->属性里看到的连接名称,但是对于拨号连接或RAS连接,如ADSL,VPN,返回的确实是连接的名称,并且是用来可连上Inet网的连接的名称,第三个参数是用来存放连接名称的字符串的长度,第四个参数总是0.

3.在JAVA中通过socket的bind,注意不是serversocket的bind,判断不出是用哪个本地连接连上的,当在socket的构造函数中指定

了本地IP和port后,会出现bind的Exception.

4.在取本地的连接名称时,查找WINAPI找不到,通过网络知道可以采用,WinExec("cmd.exe /c ipconfig /all > d:\\result.tmp", SW_HIDE);的方法,cmd.exe /c 是在执行结束后关闭cmd窗口的意思,并且这样重定向到了文本文件中,可以在java中继续处理.

5,网络上说的调用wininetAPI 来设置网络连接的PROXY的方法,适合于LAN连接,或已经知道用哪个连接连上了Internet的方法,

可通过 InternetGetConnectedStateEx来判断,如果返回LAN连接,设置代理时直接输入NULL代替连接名,如果是拨号的RAS连接

包括ADSL,VPN,则可以直接从此函数得到名称.

6.VC6.0的wininet.h中无 InternetGetConnectedStateEx得头函数声明,因此必须采用VS2005,Vs2008中的头文件,在VS2005,VS2008中开发,否则只拷贝头文件还会出错.

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值