Internet上的Java套接字:ConnectException(操作超时)

Mic*_*ael 2 java networking

我正试图通过互联网打开一个网站的套接字,但不能.大约一分钟后,a ConnectException抛出一声说操作超时.

Socket clientSocket = new Socket(InetAddress.getByName("gmail.com"), 25);
Run Code Online (Sandbox Code Playgroud)

我的计算机连接到路由器,该路由器连接到Internet.我的路由器配置为将所有传入端口25数据定向到本地计算机上的端口2550(192.168.2.2).所以,我想也许如果我在Socket构造函数上设置"本地地址"和"本地端口"参数它可能会工作...但这也给了我一个"操作超时"错误.

Socket clientSocket = new Socket(InetAddress.getByName("gmail.com"), 25, InetAddress.getByName("192.168.2.2"), 2550);
Run Code Online (Sandbox Code Playgroud)

我看到了这个问题,但是想知道是否有人能够对这个问题有所了解.谢谢.

Gre*_*ill 7

您正尝试连接到端口25 gmail.com,但该计算机不是电子邮件服务器.您必须先查找MX记录gmail.com,然后尝试连接到返回的MX记录中提到的其中一个传送服务器.

例如,dig mx gmail.com在我的机器上,我得到:

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> mx gmail.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34063
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;gmail.com.                     IN      MX

;; ANSWER SECTION:
gmail.com.              1697    IN      MX      30 alt3.gmail-smtp-in.l.google.com.
gmail.com.              1697    IN      MX      40 alt4.gmail-smtp-in.l.google.com.
gmail.com.              1697    IN      MX      5 gmail-smtp-in.l.google.com.
gmail.com.              1697    IN      MX      10 alt1.gmail-smtp-in.l.google.com.
gmail.com.              1697    IN      MX      20 alt2.gmail-smtp-in.l.google.com.

;; AUTHORITY SECTION:
gmail.com.              266895  IN      NS      ns1.google.com.
gmail.com.              266895  IN      NS      ns2.google.com.
gmail.com.              266895  IN      NS      ns3.google.com.
gmail.com.              266895  IN      NS      ns4.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         262525  IN      A       216.239.32.10
ns2.google.com.         262525  IN      A       216.239.34.10
ns3.google.com.         262525  IN      A       216.239.36.10
ns4.google.com.         262525  IN      A       216.239.38.10

;; Query time: 65 msec
;; SERVER: 144.52.10.15#53(144.52.10.15)
;; WHEN: Tue Feb 28 14:30:04 2012
;; MSG SIZE  rcvd: 295
Run Code Online (Sandbox Code Playgroud)

因此,请尝试连接到端口25 gmail-smtp-in.l.google.com(具有最低MX优先级编号的服务器).