第五章:网络编程(下)

1.Socket多客户端通信实现

1.客户端程序代码:

客户端代码与第四章中客户端代码相同,不再累述。

2.服务器端程序代码:

2.数据报通信

数据包通信采用的是UDP(User Datagram Protocol),它是非面向连接的,提供不可靠的数据包式的数据传说的协议,类似于从邮局发送信件的过程。Java中的DatagramPacket/DatagramSocket/MulticastSocket等累使用UDP协议进行网络通信。

TCP(Transport Control Protocol)是面向对接的能够提供可靠的流式数据传输的协议。Java中的ULR/URLConnection/socket/serverSocket等类使用TCP协议进行网络通信。

1.TCP和UDP的区别

(1)TCP有建立时间,UDP没有;

(2)UDP传输限制包在64k以内;

(3)TCP的应用有Telnet、FTP等,UDP的应用有ping等。

2.Java中进行数据报通信

所用的类有:

①DatagramSocket()//只允许数据报发往一个目的地址

②DatagramSocket(int port)

③DatagramPacket(byte ibuf[], int ilength)//接受

④DatagramPacket(byte ibuf[], int ilength, InetAdress iaddr, int iport);//发送

收数据报:

发数据报:

例:客户方程序QuoteClient.java

代码:

例:服务器方程序QuoteServer.java

代码:

例:服务器方程序QuoteServerThread.java

代码:

      

 

3.使用数据报进行广播通信

MulticastSocket讲数据报以广播方式发送到该端口的所有客户。

例:客户方程序MulticastClient.java

代码:

例:客户方程序MulticastServer.java

代码:

例:服务器方程序QuoteServerThread.java

代码: