- 主题:Java能实现UDP协议传输吗?
怎么实现呢?
--
FROM 223.193.17.*
必然可以。jdk原生支持,DatagramSocket
或者用netty
【 在 KEL 的大作中提到: 】
: 怎么实现呢?
--
FROM 1.202.162.*
哦,谢谢!
【 在 eventvwr 的大作中提到: 】
: 必然可以。jdk原生支持,DatagramSocket
: 或者用netty
--
FROM 223.193.4.*
UDP_Client.java
import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
byte[] bs = new byte[] { (byte) 192, (byte) 168, 2, 100 };
InetAddress IPAddress = InetAddress.getByAddress(bs);
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence =
new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
}
--
修改:sinclair6 FROM 218.249.50.*
FROM 218.249.50.*
UDP_Server.java
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket);
}
}
}
--
FROM 218.249.50.*