您能否提供一个通过 UDP 数据报在两个 java 类之间传输的字节缓冲区的示例?
none
问问题
6561 次
2 回答
4
这个怎么样 ?
导入 java.io.IOException; 导入 java.net.DatagramPacket; 导入 java.net.DatagramSocket; 导入 java.net.InetSocketAddress; 公共类服务器{ 公共静态 void main(String[] args) 抛出 IOException { DatagramSocket socket = new DatagramSocket(new InetSocketAddress(5000)); 字节[]消息=新字节[512]; DatagramPacket packet = new DatagramPacket(message, message.length); socket.receive(数据包); System.out.println(new String(packet.getData(), packet.getOffset(), packet.getLength())); } }
导入 java.io.IOException; 导入 java.net.DatagramPacket; 导入 java.net.DatagramSocket; 导入 java.net.InetSocketAddress; 公共类客户{ 公共静态 void main(String[] args) 抛出 IOException { DatagramSocket 套接字 = 新的 DatagramSocket(); socket.connect(新 InetSocketAddress(5000)); byte[] message = "Oh Hai!".getBytes(); DatagramPacket packet = new DatagramPacket(message, message.length); 套接字.发送(数据包); } }
于 2008-09-17T04:44:13.417 回答
0
@没有任何
DatagramSocket 类确实需要改进,DatagramChannel 对客户端稍微好一点,但对服务器编程来说却很混乱。例如:
导入 java.io.IOException; 导入 java.net.InetSocketAddress; 导入 java.nio.ByteBuffer; 导入 java.nio.channels.DatagramChannel; 公共类客户{ 公共静态 void main(String[] args) 抛出 IOException { DatagramChannel 通道 = DatagramChannel.open(); ByteBuffer buffer = ByteBuffer.wrap("Oh Hai!".getBytes()); channel.send(buffer, new InetSocketAddress("localhost", 5000)); } }
带上JSR-203我说
于 2008-09-17T04:57:05.400 回答