预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java网络编程—TCP/Socket 前言 网络编程可分为基于TCP的网络程序设计和基于UDP的网络程序设计。TCP是基于字节流的面向连接的,常 用于可靠的网络传输,而UDP是基于数据报的无连接的网络传输,常用语即时通信。 1.0基于Socket的Java网络编程 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个Socket。 Socket允许程序员将网络连接当成一个流,可以向这个流中写字节,也可以从这个流中读取字节。 Socket通常用来实现客户端和服务端的连接。 Socket为程序员屏蔽了网络的底层细节,如媒体类型、信息包的大小、网络地址、信息的重发等。 Socket是TCP/IP协议的一个十分流行的编程界面。一个Socket由一个口地址和一个端口号唯一确定。 在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。 TCP/IPSocket用于在主机和Internet之间建立可靠的、双向的、持续的、点对点的流式连接。一个Socket 可以用来建立Java的输入/输出系统到其它的驻留在本地机或Internet上的任何机器的程序的连接。 2.0一般过程 使用Socket进行Client/Server程序设计的一般连接过程是这样的:Server端Listen(监听)某个端口是 否有连接请求,Client端向Server端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消 息。一个连接就建立起来了。Server端和Client端都可以通过Send,Write等方法与对方通信。对于一个功能 齐全的Socket,都要包含以下基本结构,其工作过程包含以下4个基本的步骤: (1)创建Socket。 (2)打开连接到Socket的输入/出流。 (3)按照一定的协议对Socket进行读/写操作。 (4)关闭Socket。 Java在包Java.NET中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端: 一种是服务器端的ServerSocket类,另一种是客户端的Socket类。ServerSocket类设计成在等待客户端建立 连接之前不做任何事情的“监听器”。Socket类为建立连向服务器端的ServerSocket及启动协议交换而设计。 3.0Socket类 Socket类是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较 为方便地编写网络上数据的传递方法,其常用方法及功能见表3.0 3.0Socket类的方法列表 方法名功能说明 创建一个到主机host、端口号为port的Socket。并 PublicSocket(Stringhost,intport) 连接到远程主机 创建一个Socket,使用host中封装的主机信息、端口 PublicSocket(InetAddresshost,intport) 号为port并连接到远程主机 返回Socket所连接的远程主机的IP地址,如果连接失 PublicInetAddressgetInetAddress() 败,则返回以前连接的主机 PublicintgetPort()返回Socket所连接的远程主机的端口号 PublicintgetLocalPort()返回本地连接终端的端口号 返回一个输入流,利用这个流就可以从Socket读取数 PublicInputStreamgetInputStream() 据 返回一个输出流,可以在应用程序中写数据到Socket PublicOutputStreamgetOUtputStream() 的另一端 Publicsynchronizedvoidclose()关闭当前Socket连接 其它构造了解: Socket(Stringhost,intprot,booleanstream) Socket(Stringhost,intport,InetAddresslocalAddr,intlocaIPon) Socket(InetAddressaddress,intport,booleallstream) Socket(InetAddressaddress,intport,InetAddressloealAddr,intlocalPort) Socket(Socketlmplimpl) 其中Address、Host和Port分别是双向连接中另一方的IP地址、主机名和端口号,Stream指明Socket 是流Socket还是数据报Socket,localPort表示本地主机的端口号,localAddr是本地机器的IP地址,impl 是Socket的父类,既可以用来创建ServerSoc