------- android培训、java培训、期待与您交流! ----------
★TCP通信
- TCP与UDP通信一样,都能实现两台计算机之间的通信,通信的两端都需要建立Socket对象。
- 区别在于:
- UDP中只有发送端和接收端,不区分客户端与服务器端,计算机之间可以任意
- 的发送数据。
- 而TCP通信是严格区分客户端与服务器端,在通信时,必须服务器端程序需要
- 事先启动,等待客户端的连接。
★ServerSocket()服务器端的构造方法:
- ServerSocket():这个方法需要调用bind(SocketAddress endpoint)方法将其绑定
- 在指定的端口上,才能使用。
- ServerSocket(int port):这个端口号可以使0,然后由系统自动分配一个没有被使用
- 的端口号。这个方法最常用,但是一般都是自己定义端口号。
- ServerSocket(int port,int backlog):backlog这个参数是用于指定服务器忙时,
- 可以与之保持连接请求的等待客户数量,默认值为50。
- ServerSocket(int port,int backlog,InetAddress bindAddr):多网卡支持,不常用
★ServerSocket服务器端的常用方法;
- Socket accept():该方法用于等待客户端连接,连接之前为阻塞状态。
- InetAddress getInetAddress():返回一InetAddress对象,对象中封装了ServerSocket
- 绑定的IP地址。
- Boolean isClosed():用于判断ServerSocket对象是否为关闭状态,关(true),反之。
- void bind(SocketAddress endpoint):该方法将ServerSocket对象绑定到指定的IP地址
- 和端口号,其中参数endpoint封装了IP地址和端口号。
★Socket客户端的构造方法:
- Socket():该方法需要调用connect(SocketAddress endpoint)方法,与指定的服务器端
- 连接,其中endpoint用于封装IP地址和端口号。(这个方法最常用)
- Socket(String host,int port):在创建对象时候,会根据参数去连接在指定地址和端口号
- 上运行的服务器程序,其中参数host接收的是一个字符串类型的IP地址。
- Socket(InetAddress address,int port):该方法比上面的方法多了一个封装IP 的功能
★Socket客户端的常用方法:
- int getPort():返回一个端口号,int类型的
- InetAddress getLocalAddress():用于获取Socket对象绑定的IP地址,并将IP地址封装
- 成InetAddress类型的对象返回。
- void close():用于关闭Socket连接,结束本次通信。
- InputStream getInputStream():该方法返回一个InputStream类型的输入流对象,
- 如果该对象时由服务器端的Socket返回,就用读取客户端发送的数据,反之
- OutputStream getOutputStream():该方法返回一个OutputStream类型的输出流
- 对象,如果该对象是由服务器端Socket返回,就用于向客户端发送数据,反之