Java语言Socket接口用法详解

上传人:206****923 文档编号:37522503 上传时间:2018-04-17 格式:DOC 页数:7 大小:108KB
返回 下载 相关 举报
Java语言Socket接口用法详解_第1页
第1页 / 共7页
Java语言Socket接口用法详解_第2页
第2页 / 共7页
Java语言Socket接口用法详解_第3页
第3页 / 共7页
Java语言Socket接口用法详解_第4页
第4页 / 共7页
Java语言Socket接口用法详解_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Java语言Socket接口用法详解》由会员分享,可在线阅读,更多相关《Java语言Socket接口用法详解(7页珍藏版)》请在金锄头文库上搜索。

1、Socket 接口用法详解接口用法详解在 Java 中,基于 TCP 协议实现网络通信的类有两个,在客户端的 Socket 类和在服务器端 的 ServerSocket 类,ServerSocket 类的功能是建立一个 Server,并通过 accept()方法随时监 听客户端的连接请求。 扩展: ServerSocketServerSocket 中常用的构造函数及方法中常用的构造函数及方法构造函数:ServerSocket(int port) 这是一个构造方法,用于在当前的服务器默认的 IP 地址上监听一个指定的端口,即在指定的 IP 和端口创建一个 ServerSocket 对象方法:So

2、cket accept() 产生阻塞,监听指定的端口,直至有客户端发来连接请求void close() 关闭当前 ServerSocketInetAddress getInetAddress() 返回 ServerSocket 监听的,本机的 IP 地址 int getLocalPort() 返回 ServerSocket 监听的,本机的 IP 地址上指定的端口号int getSoTimeout();void setSoTimeout(int timeout) 设置连接过程中没有得到相应的 等待期限时间(TimeOut)String toString() 以字符串的方式返回 ServerSoc

3、ket 监听的,本机的 IP 地址及其端 口号SocketSocket 类中常用的构造函数和方法类中常用的构造函数和方法构造函数:Socket(InetAddress address,int port) 用于创建一个链接,向指定的 IP 地 址上指定的端口的服务器端程序发送连接请求Socket(String host,int port) 同上,但该方法允许通过主机名字符串向服务器发送连 接请求方法:void close()关闭当前的 Socket 连接InetAddress getInetAddress() 返回 Socket 建立了连接的服务器的 IP 地址InputStream getIn

4、putStream() 返回当前 Socket 的输入流OutputStream getOutStream() 返回当前 Socket 的输出流InetAddress getLocalAddress() 返回和 Socket 进行连接的本地的 IP 地址int getLocalPort() 返回和 Socket 进行连接的本地的端口号int getPort() 返回和 Socket 建立了连接的服务器的端口号int getSoTimeOut();void setSoTimeOut(int timeout) 设置连接过程中没有得到相应的 等待期限时间String toString () 以字符串

5、的方式返回 Socket 的属性信息Socket 类的构造方法包括以下几种: public Socket(String host,int port) public Socket(InetAddress address,int port) public Socket(String host,int port,InetAddress localAddr,int localPort) public Socket(InetAddress host,int port, InetAddress,localAddr,int localPort) 在 JDK1.1 以前,Socket 类可同时用于 TCP/U

6、DP 通信: public Socket(String host,int port,Boolean stream) public Socket(InetAddress host,int port, Boolean stream) Socket 类的输入/输出流管理包括以下方法: public InputStream getInputStream() public void shutdowmInput() public OutputStream get OutputStream () public void shutdowmOutput() 以上这些方法都将抛出 IOException 异常,程

7、序中需要捕获并处理。 关闭 Socket 的方法为: public void close() throws IOException 设置/获取 Socket 数据的方法为: public InetAddress getInetAddress() public int getPort() public void setSoTimeout(int timeout) 这些方法都将抛出 SocketException 异常,程序中需要捕获并处理。 ServerSocket 类的构造方法包括以下几种: public ServerSocket (int Port) public ServerSocket

8、(int Port,int backlog):支持指定数目的连接 public ServerSocket (int Port,int backlog,InetAddress bindAddr) 这些方法都将抛出 IOException 异常,程序中需要捕获并处理。 public Socket accept():等待客户端的连接 public void close():关闭 Socket 设置/获取 Socket 数据的方法包括: public InetAddress get InetAddress () public int getLocalPort() public void setSoTi

9、meout(int timeout) 这些方法都将抛出 SocketException 异常,程序中需要捕获并处理。Socket 的基本概念的基本概念1 1建立连接建立连接当需要建立网络连接时,必须有一台机器运行一个程序,随时等候连接,而另一端的程序 这对其发出连接请求。这一点同电话系统类似必须有一方拨打电话,而另一方必须等 候电话连通。建立连接的过程为: (1)现在服务器端生成一个 ServerSocket 实例对象,随时监听客户端的连接请求。 (2)当客户端需要连接时,相应地要生成一个 Socket 实例对象,并发出连接请求,其中host 参数指明该主机名,port#参数指明该主机端口号。

10、 (3)服务器端通过 accept()方法接收到客户端的请求后,开辟一个接口与之进行连接,并 生成所需的 I/O 数据流。 (4)客户端和服务器端的通信都是通过一对 InputStream 和 OutputStream 进行的,通信结 束后,两端分别关闭对应的 Socket 接口。 2.2.连接地址连接地址打电话时,呼叫方必须事先知道所需拨打的号码,而程序建立网络连接时,也同样需要知 道地址或主机名称。另外,网络连接还需要一个端口号(可以将其当作电话的分机号) ,连 接到正确的主机之后,需要对该连接确认特定口令。某些情况下,还需要使用一个扩展号 码与网络计费系统相连,于是相应地要有一个特定端口

11、号用于连接计费程序。 3.3.端口号端口号在 TCP/IP 系统中,端口号由 16 位二进制整数组成,即在 0-65535 之间。实际应用中,前 1024 个端口号已经预先定义为一些特定服务,因此一般不能使用,除非想同这些服务器进 行连接(如 Telnet,SMTP,mail,ftp 等) 。在两个程序连接之前,彼此之间必须达成一致, 即由客户端负责初始化连接,而服务器随时等候请求。只有客户端和服务器端指定端口号 一致时连接才会建立。如果系统中两个程序所用端口号不一致,这连接无法建立。 4.4.网络连接模式网络连接模式在 Java 中,TCP/IP 接口的连接是由 包中的类实现的。如图表示的

12、是 Socket 连接过 程中客户端和服务器端的工作原理。每个 server 端都拥有一个端口号,一台机器上如果运行多个服务,这可能对应多个端口号。 通信结束后,两端分别关闭对应的 Socket 接口,而不影响其他的端口。Socket 通信的基本步骤通信的基本步骤使用 Socket 方式进行网络通信的程序基本结构都是类似的,无论一个 Socket 通信程序的功 能多么齐全、程序多么复杂,其基本结构都是一样的。客户端与服务器端进行通信的过程 都包括以下四个基本步骤: (1)在服务器端指定一个用来等待连接的端口号,在客户端规定一个主机和端口号,从而在客户端和服务器端创建 Socket/Server

13、Socket 实例。 (2)打开连接到 Socket 的输入输出流。 (3)利用输入输出流,按照一定的协议对 Socket 进行读写操作。 (4)关闭输入输出流和 Socket 通常,程序员的主要工作时针对所要完成的功能砸器第(3)步进行编程,第(1) 、 (2) 、 (4)步对所有的通信程序来说几乎都是一样的。Socker 通信的程序设计通信的程序设计1.1.服务器端程序服务器端程序TCP/IP 服务器端应用程序是通过 Java 语言中提供的 ServerSocket 和 Socket 这两个有关网 络的类来实现的。而 ServerSocket 类除了建立一个 Server 之外,还通过 a

14、ccept()方法提供了 随时监听客户端连接请求的功能,它的构造方法有以下两种。 ServerSocket(int port) ServerSocket(int port,int backlog) 其中 port 是指连接中对方的端口号,backlog 则表示服务器端所能支持的最大连接数。下面 的程序用来监听客户端应用程序建立连接的请求,并在连接建立后向客户端发送信息。 /* 功能:这是服务器端程序,用来监听客户端应用程序建立连接的请求,并在 连接建立后向客户端发送信息*/ package com.xushouwei; /引入相应的包 import .*; import java.io.*;

15、public class TServer public static void main(String args) /定义ServerSocket类 ServerSocket s=null; /定义Socket类 Socket s1; /定义发送字符串 String sendString=“你好!我是徐守威.“; /得到发送字符串的长度 int s1lenth=sendString.length(); /定义OutputStream类 OutputStream s1out; /定义DataOutputStream类 DataOutputStream dos; /通过1314端口建立连接 try

16、 /创建ServerSocket并把传入端口号s=new ServerSocket(1314); catch (Exception e) e.printStackTrace(); /循环运行监听程序,以监视连接请求 while(true) try /监听端口请求,等待连接 s1=s.accept(); /得到与socket相连接的数据流对象 s1out=s1.getOutputStream(); dos=new DataOutputStream(s1out); /发送字符串 dos.writeUTF(sendString); /关闭数据流(但不是关闭Socket连接) dos.close(); s1out.close(); s1.close(); catch (Exception e) e.printStackTrace(); 2.2.客户端程序客户端程序TCP/IP 服务器端应用程序是通过 Java 语言中提供的 Socket 类

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号