无法连接到服务器,TCP套接字android

时间:2011-10-31 16:00:50

标签: android

我正在尝试在客户端应用程序中打开TCP套接字,以便它可以与我的服务器通信 在阅读完文档之后,我对socket构造函数感到好奇,它接受了两个参数。

Socket(InetAddress dstAddress, int dstPort)
Creates a new streaming socket connected to the target host specified by the parameters dstAddress and dstPort.

及其描述如上。据我所知,在创建套接字后,我应该明确调用connect函数,以便连接到服务器。但是在我在网上发现的一些TCP客户端示例代码中,没有一个实际调用连接函数

connect(SocketAddress remoteAddr, int timeout)

所以我在想如果构造函数在创建后自动连接到服务器?三方握手完成了。或者我必须在构造函数后显式调用connect函数?非常感谢你

2 个答案:

答案 0 :(得分:1)

只有两个不带任何目标的构造函数不能连接

  • Socket() 创建一个新的未连接套接字。

  • Socket(Proxy) 使用给定的代理类型创建新的未连接套接字。

您将目标作为主机名或地址传递的所有其他构造函数:

  • Socket(String, int) 创建一个新的流式套接字已连接到由参数dstName和dstPort指定的目标主机。

  • Socket(String, int, InetAddress, int)创建一个新的流式套接字已连接到由参数dstName和dstPort指定的目标主机。

  • Socket(InetAddress, int) 创建一个新的流式套接字已连接到由参数dstAddress和dstPort指定的目标主机。

  • Socket(InetAddress, int, InetAddress, int) 创建一个新的流式套接字已连接到由参数dstAddress和dstPort指定的目标主机。

我遗漏了两个弃用的构造函数。

直接来自Android API documentation for java.lang.Socket

答案 1 :(得分:0)

套接字构造函数根据文档工作,有些也做连接,其他没有。 请参阅: http://download.oracle.com/javase/6/docs/api/java/net/Socket.html

握手自动完成,您无需照顾它。