赞
踩
Socket:Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。
Socket API 分类:
1.UDP数据报套接字编程:
DatagramSocket 构造方法:
方法签名 方法说明 DatagramSocket() 创建一个UDP数据报套接字的Socket,绑定到本机任意一个随机端口
(一般用于客户端)DatagramSocket(int
port)创建一个UDP数据报套接字的Socket,绑定到本机指定的端口(一般用
于服务端)
DatagramSocket 方法:
方法签名 方法说明 void
receive(DatagramPacket p)从此套接字接收数据报(如果没有接收到数据报,该方法会阻
塞等待)void send(DatagramPacket
p)从此套接字发送数据报包(不会阻塞等待,直接发送) void close() 关闭此数据报套接字 DatagramPacket 构造方法:
方法签名 方法说明 DatagramPacket(byte[]
buf, int length)构造一个DatagramPacket以用来接收数据报,接收的数据保存在
字节数组(第一个参数buf)中,接收指定长度(第二个参数
length)DatagramPacket(byte[]
buf, int offset, int length,
SocketAddress address)构造一个DatagramPacket以用来发送数据报,发送的数据为字节
数组(第一个参数buf)中,从0到指定长度(第二个参数
length)。address指定目的主机的IP和端口号DatagramPacket 方法:
方法签名 方法说明 InetAddress
getAddress()从接收的数据报中,获取发送端主机IP地址;或从发送的数据报中,获取
接收端主机IP地址int getPort() 从接收的数据报中,获取发送端主机的端口号;或从发送的数据报中,获
取接收端主机端口号byte[] getData() 获取数据报中的数据
构造UDP发送的数据报时,需要传入 SocketAddress ,该对象可以使用InetSocketAddress 来创建。InetSocketAddress API
InetSocketAddress ( SocketAddress 的子类 )构造方法:
方法签名 方法说明 InetSocketAddress(InetAddress addr, int port) 创建一个Socket地址,包含IP地址和端口号
示例一:实现一个回显服务(EchoServer)=》一发一收(发什么就返回什么)
UDP服务端代码实现:
package network; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; // 站在服务器的角度: // 1. 源 IP: 服务器程序本机的 IP // 2. 源端口: 服务器绑定的端口 (此处手动指定了 9090) // 3. 目的 IP: 包含在收到的数据报中. (客户端的IP) // 4. 目的端口: 包含在收到的数据报中. (客户端的端口) // 5. 协议类型: UDP public class UdpEchoServer { // 进行网络编程, 第一步就需要先准备好 socket 实例~ 这是进行网络编程的大前提. private DatagramSocket socket = null; public UdpEchoServer(int port) throws SocketException { socket = new DatagramSocket(port); } // 启动服务器. public void start() throws IOException {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。