Tel:0571-88394222 QQ;106159278 网络编程 2 Tel:0571-88394222 QQ;106159278 ? UDP socket ? HTTP 协议参考? RMI- 远程方法调用? JavaMail Tel:0571-88394222 QQ;106159278 socket ?它们是无连接的协议。?不保证消息的可靠传输。?它们由 Java 技术中的 DatagramSocket 和 DatagramPacket 类支持。? TCP/IP 是面向连接的协议。而用户数据报协议(UDP) 是一种无连接的协议。要区分这两种协议, 一种很简单而又很贴切的方法是把它们比作电话呼叫和邮递信件。?电话呼叫保证有一个同步通信;消息按给定次序发送和接收。而对于邮递信件,即使能收到所有的消息,它们的顺序也可能不同。 Tel:0571-88394222 QQ;106159278 - DatagramPacket ? DatagramPacket 有两个构造函数:一个用来接收数据,另一个用来发送数据: ? DatagramPacket(byte [] recvBuf , int readLength )- 用来建立一个字节数组以接收 UDP 包。 byte 数组在传递给构造函数时是空的,而 int 值用来设定要读取的字节数(不能比数组的大小还大)。? DatagramPacket(byte [] sendBuf , int sendLength , InetAddress iaddr , int iport )-用来建立将要传输的 UDP 包。 sendLength 不应该比 sendBuf 字节数组的大小要大。 Tel:0571-88394222 QQ;106159278 - DatagramSocket ? DatagramSocket 用来读写 UDP 包。这个类有三个构造函数,允许你指定要绑定的端口号和 地址: ? DatagramSocket ()-绑定本地主机的所有可用端口? DatagramSocket(int port) -绑定本地主机的指定端口? DatagramSocket(int port, InetAddress iaddr ) -绑定指定地址的指定端口 Tel:0571-88394222 QQ;106159278 ? public class Server { ? public static void main(String [] args ) throws IOException { ? DatagramSocket ds = new DatagramSocket(30000); ? byte [] buf = new byte [1024]; ? DatagramPacket dp = new DatagramPacket(buf , 1024); ? System. out .println("server is runing ...."); ? (dp ); ? String strRecv = new String( (), 0, ()) + " from “?+ ().getHostAddress () + ":" + (); ? System. out .println(strRecv ); ? (); ? System. out .println("server is closed!"); ?} ?} Tel:0571-88394222 QQ;106159278 ? public class Client { ? public static void main(String [] args ) throws IOException { ? DatagramSocket ds = new DatagramSocket (); ? String str = "hello world"; ? DatagramPacket dp = new DatagramPacket( (), (), ? InetAddress. getByName (""), 30000); ? (dp ); ? (); ?} ?} Tel:0571-88394222 QQ;106159278 P 协议 Tel:0571-88394222 QQ;106159
网络编程2 来自淘豆网www.taodocs.com转载请标明出处.