java client socket备忘

来源:互联网 发布:windows最高权限 编辑:程序博客网 时间:2024/06/05 14:39

2012517

1、数据分段成帧之后需要考虑的问题:数据帧的丢失和乱序。

2、数据分段成帧之后,需要考虑的问题:数据如何分段、产生数据帧头部、分析数据帧头部、记录哪些帧没有正确传输、乱序重排。

3、使用scoket之后的效果:socket屏蔽了网络协议底层的细节,利用socket可以把数据的收发当做流来处理。

4socket的作用:连接到远端的电脑、发送数据、接收数据、关闭一个连接、绑定到一个端口、监听输入的数据、接收来自远端电脑的连接。前三种是客户端socket的功能,后三种需要服务端socket实现。

5socket的使用流程

1构造一个新的socket

2用新构造的socket连接远端的电脑

3利用输入和输出流来收发数据

4通信结束之后关闭连接

6socket的构造函数

1public Socket(String host, int port) throws UnknownHostException, IOException

生成一个名称为host,端口号为portSocket对象,然后试图建立连接

如果不能解析host,就产生UnknownHostException

如果不能建立连接,就产生IOException

可以用这个构造函数来确定对端的特定端口是否开放。

2public Socet(InetAddress host, int port) throws IOException

如果无法连接,就产生IOException

在某些情况下,如果需要在同一个host下面打开多个socket,用InetAddress会更高效。

3public Socket(String host, int port, InetAddress interface, int localPort) throws IOException, UnKnownHostException

前两个参数作为对端接口,后两个参数作为本地的端口,如果localPort0,则随机从102465535随机选择一个端口作为本地发送端口。

4public Socket(InetAddress host, int port, InetAddress interface, int localPort) throws IOException

这个和前一个几乎一样

7、从Socket对象获取信息

1public InetAddress getInetAddress()

返回socket对象的host名称

2public int getPort()

返回socket对象连接的host的端口号

3public int getLocalPort()

返回本地端localhost的端口号

4public InetAddress getLocalAddress()

返回socket对象绑定的本地端口地址

5public InputStream getInputStream() throws IOException

返回可以从socket读取数据的input stream对象

6public OutputStream getOutputStream() throws IOException

返回可以从socket发送数据的output stream对象

8、关闭socket

Socket connection = null;

try {

    connection = new Socket("www.oreilly.com", 13);

    // interact with the socket

}  // end try

catch (UnknownHostException ex) {

    System.err.println(ex);

}

catch (IOException ex) {

    System.err.println(ex);

}

finally {

    if (connection != null)

        connection.close();

}

9、判断一个Socket是否已经关闭

isClosed(),如果已经关闭,将返回true

 

原创粉丝点击