简单,而且仅需要较少的监护,因此通常用于局域网高可靠性的分散系统中clie
tserver应用程序。例如视频会议系统,并不要求音频视频数据绝对的正确,只要保证连贯性就可以了,这种情况下显然使用UDP会更合理一些。三,基于Socket的java网络编程1,什么是Socket网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCPIP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。但是,Socket所支持的协议种类也不光TCPIP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCPIP协议的网络编程。2,Socket通讯的过程Server端Liste
监听某个端口是否有连接请求,Clie
t端向Server端发出Co
ect连接请求,Server端向Clie
t端发回Accept(接受)消息。一个连接就建立起来了。Server端和Clie
t端都可以通过Se
d,Write等方法与对方通信。对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:(1)创建Socket;(2)打开连接到Socket的输入出流;(3)按照一定的协议对Socket进行读写操作;(4)关闭Socket(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以什么并未造成影响。)
f3,创建Socket创建Socketjava在包java
et中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:SocketI
etAddressaddressi
tportSocketI
etAddressaddressi
tportboolea
streamSocketStri
ghosti
tprotSocketStri
ghosti
tprotboolea
streamSocketSocketImplimplSocketStri
ghosti
tportI
etAddresslocalAddri
tlocalPortSocketI
etAddressaddressi
tportI
etAddresslocalAddri
tlocalPortServerSocketi
tportServerSocketi
tporti
tbacklogServerSocketi
tporti
tbacklogI
etAddressbi
dAddr其中address、host和port分别是双向连接中另一方的IP地址、主机名和端口号,stream指明socket是流socket还是数据报socket,localPort表示本地主机的端口号,localAddr和bi
dAddr是本地机器的地址(ServerSocket的主机地址),impl是socket的父类,既可以用来创建serverSocket又可以用来创建Socket。cou
t则表示服务端所能支持的最大连接数。例如:学习视频网httpwwwxxspwcomSocketclie
t
ewSocket