====转载====
一个简单的UDP服务端和客户端示例
博客分类: 网络编程
socketudptcp网络端口
UDP的理论不再多说,我这里直接给出一个关于UDP的HelloWorld程序,代码明了,希望对刚入门的学生有所帮助!
首先写服务端代码,服务端邦定本地的IP和端口来监听访问:
Java代码
package udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
/**
* UDP服务类
*/
public class UdpServerSocket {
private byte[] buffer = new byte[1024];
private static DatagramSocket ds = null;
private DatagramPacket packet = null;
private InetSocketAddress socketAddress = null;
/**
* 测试方法
*/
public static void main(String[] args) throws Exception {
String serverHost = "127.0.0.1";
int serverPort = 3344;
UdpServerSocket udpServerSocket = new UdpServerSocket(serverHost,
serverPort);
while (true) {
udpServerSocket.receive();
udpServerSocket.response("你好,吃了吗!");
}
}
/**
* 构造函数,绑定主机和端口
*/
public UdpServerSocket(String host, int port) throws Exception {
socketAddress = new InetSocketAddress(host, port);
ds = new DatagramSocket(socketAddress);
System.out.println("服务端启动!");
}
/**
* 接收数据包,该方法会造成线程阻塞
*/
public final String receive() throws IOException {
packet = new DatagramPacket(buffer, buffer.length);
ds.receive(packet);
String info = new String(packet.getData(), 0, packet.getLength());
System.out.println("接收信息:" + info);
return info;
}
/**
* 将响应包发送给请求端
*/
public final void response(String info) throws IOException {
System.out.println("客户端地址 : " + packet.getAddress().getHostAddress()
+ ",端口:" + packet.getPort());
DatagramPacket dp = new DatagramPacket(buffer, buffer.length, packet
.getAddress(), packet.getPort());
dp.setData(info.getBytes());
ds.send(dp);
}
}
运行后提示服务端运行成功,程序开始监听端口,接收方法堵塞,当有访问时才会向下进行!
我们写客户端进行访问,看到网上的例子都是直接创建了 DatagramSocket 对象,而其实自己都不知道自己使用的端口是那个,这里我创建时会指定自己邦定的端口,其实很简单,就是初始化该对象时传递一个端口参数。
这里你访问客户端时客户端会打印你的IP和端口!
看一看客户端代码:
Java代码
package udp;
import java.io.*;
import java.net.*;
/**
* UDP客户端程序,用于对服务端发送数据,并接收服务端的回应信息
*/
public class UdpClientSocket {
private byte[] buffer = new byte[1024];
private static DatagramSocket ds = null;
/**
* 测试客户端发包和接收回应信息的方法
*/
public static void main(String[] args) throws Exception {
UdpClientSocket client = new UdpClientSocket();
String serverHost = "127.0.0.1";
int serverPort = 3344;
client.send(serverHost, serverPort, ("你好,亲爱的!").getBytes());
byte[] bt = client.receive();
System.out.println("服务端回应数据:" + new String(bt));
// 关闭连接
try {
ds.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 构造函数,创建UDP客户端
*/
public UdpClientSocket() throws Exception {
ds = new DatagramSocket(8899); // 邦定本地端口作为客户端
}
/**
* 向指定的服务端发送数据信息
*/
public final void send(final String host, final int port,
final byte[] bytes) throws IOException {
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(host), port);
ds.send(dp);
}
/**
* 接收从指定的服务端发回的数据
*/
public final byte[] receive()
throws Exception {
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
ds.receive(dp);
byte[] data = new byte[dp.getLength()];
System.arraycopy(dp.getData(), 0, data, 0, dp.getLength());
return data;
}
}
直接运行程序看效果!
分享到:
相关推荐
java udp 简单实例 实现
java UDP通讯实例java UDP通讯实例
java Udp 收发结构体实例 Socket编程 Udp收发大数据 单向传输 无需握手 广播 指定ip
基于java udp打洞代码可以直接运行,对刚刚接触这方面的同志,会有一定帮助。 基于java udp打洞代码可以直接运行,对刚刚接触这方面的同志,会有一定帮助。 基于java udp打洞代码可以直接运行,对刚刚接触这方面的...
java udp 打洞例子(p2p) .
JAVA UDP客户端服务端编写实例, byte[] buffer=new byte[256]; //缓冲区数组 DatagramSocket socket=new DatagramSocket(port);//实例化数据报Socket DatagramPacket packet; System.out.println(...
这里收集几个UDP的例子,希望能够对大家有用
最近做rfid读写,C#和java都用udp不用厂家的动态库,udp自己写也简单,但是试了一下Apache mina ,接收的不是string,二十byte[] 数组,简单实现了UDP,网上也有例子,但是不是我要的。可用。
本资源是使用 java,分别用 TCP 和 UDP 传输文件的源代码。读者朋友可以下载下来,参考着满足自己的需求。 另有博客《Java 使用 TCP 和 UDP 传输文件》可以参考,地址是:...
原创Java TcpUdp小例子(非异步): 含时序图、运行结果图 含四个小程序的源代码: TCPServer.java TCPClient.java UDPServer.java UDPClient.java
java UDP收发信息典型例子,代码很简单,易懂
使用java实现UDP编程,需要同时运行文件中的server和client文件。实现客户端和服务器的通讯和接收。
java socket udp网络通讯小例子
这是java udp网络编程的一个实例,对做p2p软件很有帮助,传上来和大家分享。
tcp udp 实例,实现网络通信的最简单方法。
前面个有点问题,我回家打开时才发现, 问题是设置IP不对,我用了我机器的IP,呵呵 不过你看完后改一下就可以了 还有一个问题就是,发送的字符在接收时,在窗体的后机会有乱码, 这个是开始我也没有想到,现在改...
简单清晰具有启发性的实例。 Net1和Client1类实现了TCP的简单应用。 Udp和Udpwatch类实现了UDP的简单应用。 Chater是一个聊天小工具,综合运用了TCP,UDP,IO,GUI,Thread等技术。对初学者很有启发性。
java网络编程实现udp数据发送与接收的简单实例.zip java网络编程实现udp数据发送与接收的简单实例.zip
1.使用udp协议进行发送图片数据 2.client端 将图片数据转换成字节数据 增加鉴权 进行分包发送 3.server端校验udp包的正确性(避免其他人发送的错误包被解析) 4.server端将收到的udp包进行合并 5.server端合并后正确...
UDP TCP 详细介绍 实现步骤 代码实例详解