java使用UDP来进行客户端和服务器端通信的简单例子
2011-10-06 11:52
891 查看
1:客户端程序
2:服务器端程序
3:程序运行结果
服务器端:
客户端发送的数据为:Hello, World
客户端:
服务器返回的数据为:Received
package com.pb.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.UnknownHostException; import java.net.DatagramSocket; /** * 使用Sender类来代表客户端程序, * @author ccna_zhang * */ public class Sender { public static void main(String[] args) { String msg = "Hello, World"; byte[] buf = msg.getBytes(); try { InetAddress address = InetAddress.getByName("192.168.1.80"); //服务器地址 int port = 8080; //服务器的端口号 //创建发送方的数据报信息 DatagramPacket dataGramPacket = new DatagramPacket(buf, buf.length, address, port); DatagramSocket socket = new DatagramSocket(); //创建套接字 socket.send(dataGramPacket); //通过套接字发送数据 //接收服务器反馈数据 byte[] backbuf = new byte[1024]; DatagramPacket backPacket = new DatagramPacket(backbuf, backbuf.length); socket.receive(backPacket); //接收返回数据 String backMsg = new String(backbuf, 0, backPacket.getLength()); System.out.println("服务器返回的数据为:" + backMsg); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
2:服务器端程序
package com.pb.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketAddress; import java.net.UnknownHostException; /** * 服务器端程序 * @author ccna_zhang * */ public class Receiver { public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost(); int port = 8080; //创建DatagramSocket对象 DatagramSocket socket = new DatagramSocket(port, address); byte[] buf = new byte[1024]; //定义byte数组 DatagramPacket packet = new DatagramPacket(buf, buf.length); //创建DatagramPacket对象 socket.receive(packet); //通过套接字接收数据 String getMsg = new String(buf, 0, packet.getLength()); System.out.println("客户端发送的数据为:" + getMsg); //从服务器返回给客户端数据 InetAddress clientAddress = packet.getAddress(); //获得客户端的IP地址 int clientPort = packet.getPort(); //获得客户端的端口号 SocketAddress sendAddress = packet.getSocketAddress(); String feedback = "Received"; byte[] backbuf = feedback.getBytes(); DatagramPacket sendPacket = new DatagramPacket(backbuf, backbuf.length, sendAddress); //封装返回给客户端的数据 socket.send(sendPacket); //通过套接字反馈服务器数据 socket.close(); //关闭套接字 } catch (UnknownHostException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }
3:程序运行结果
服务器端:
客户端发送的数据为:Hello, World
客户端:
服务器返回的数据为:Received
相关文章推荐
- java使用UDP来进行客户端和服务器端通信的简单例子
- C#使用 UdpClient 类进行简单通信的例子
- socket连接 java服务器端 C#客户端进行交互 简单例子
- java使用UDP协议进行服务器客户端通信
- python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
- java 使用 comet4j 主动向客户端推送信息 简单例子
- java 使用 comet4j 主动向客户端推送信息 简单例子
- python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
- java 使用 comet4j 主动向客户端推送信息 简单例子
- C#使用UdpClient类进行简单通信的实例
- 一个简单的Java UDP协议通信的例子
- 基于udp的socket编程小例子之使用多线程进行通信
- Android 使用socket 实现简单的客户端和服务器端互相通信
- java 使用 comet4j 主动向客户端推送信息 简单例子
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- java 使用 comet4j 主动向客户端推送信息 简单例子
- java 使用 comet4j 主动向客户端推送GPS信息的简单例子
- JAVA 服务端和客户端Socket通信的简单例子
- 使用socket 将 服务器端和客户端通信的例子
- Java UDP使用Socket进行网络通信(0)