------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Java网络编程
在网络传输中通常使用两种传输协议:UDP和TCP,这两种传输方式各有特点,在不同的情况下选择相应的传输技术。
UDP协议
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议。
特点:
1. 将数据、源地址、目的地址封装到数据包中,传输不需要建立链接。
2. 每个数据包大小在64k以内。
3. 因为面向无链接,因此是不可靠的协议。
4. 传输速度快。
Java语言的简单实现
发送端创建步骤:
1. 建立UDP的Socket服务。
2. 将数据封装到数据包。
3. 通过UDP的Socket服务将数据发送出去。
4. 关闭Socket服务。
代码如下:
DatagramSocket ds = new DatagramSocket(5000);
byte[] buf = "Hello World!".getBytes();
DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 10000);
ds.send(dp);
ds.close();
接收端创建步骤:
1. 定义一个udpsocket服务。
2. 定义一个数据包。
3. 通过socket服务的receive方法将接收到的数据存入以定义好的数据包中。
4. 通过数据包对象的特有方法,将这些不同的数据取出,打印在控制台上。
5. 关闭资源。
代码如下:
DatagramSocket ds = new DatagramSocket(10000);
while(true)
{
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);//阻塞式方法。
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(), 0, dp.getLength());
int port = dp.getPort();
System.out.println(ip+"::"+data+"::"+port);
}
ds.close();
TCP协议
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。
特点:
1. 建立链接,形成传输数据的通道。
2. 可以进行大量数据的传输。
3. 通过三次握手建立链接,是可靠的传输协议。
4. 传输速度较慢。
Java语言的简单实现
发送端创建过程:
1. 创建客户端的Socket服务,制定目的主机和端口。
2. 获取Socket流中的输出流。
3. 使用输入流将数据写出。
4. 关闭资源。
代码如下:
Socket s = new Socket("127.0.0.1", 10000);
OutputStream out = s.getOutputStream();
out.write("Hello World!".getBytes());
s.close();
接收端创建步骤:
1. 建立服务端的Socket服务,ServerSocket(),并监听一个端口。
2. 获取连接过来的客户端对象。
3. 客户端如果发过来数据,那么服务端要使用对应的客户端对象, 并获取到该客户端对象的读取流来读取发过来的数据,并打印在控制台上。
4. 关闭服务器。
代码如下:
ServerSocket ss = new ServerSocket(10000);
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+".........connnected");
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf, 0, len));
s.close();
ss.close();