客戶端先發送再接收?服務器端先接收再發送。
這是壹個服務器和客戶端的例子。妳可以在基礎上改變它。
當客戶端發送時發送三邊值?服務器收到後,編寫壹個函數計算三角形面積,將收到的三邊值傳入函數計算結果,並作為數據返回給客戶端。
/**
*UDPServer
*/
進口?Java . io . *;
進口?Java . net . *;
班級?UDPServer{
公共?靜電?作廢?main(String[]?args)扔?IOException{
DatagramSocketserver?=?新的?datagram socket(5050);
byte[]?recvBuf?=?新的?byte[100];
DatagramPacket?recvPacket?
=?新的?DatagramPacket(recvBuf?,?recvbuf . length);
server . receive(recv packet);
字符串?recvStr?=?新的?String(recvPacket.getData()?,?0?,?recv packet . getlength());
System.out.println("餵?世界!”?+?recvStr);
int?港口?=?recv packet . get port();
InetAddress?addr?=?recv packet . get address();
字符串?sendStr?=?“餵?!?我是?服務器”;
byte[]?sendBuf
sendBuf?=?sendstr . getbytes();
DatagramPacket?發送數據包?
=?新的?DatagramPacket(sendBuf?,?sendBuf.length?,?addr?,?港口?);
server . send(send packet);
server . close();
}
}/**
*客戶端
*/
進口?Java . io . *;
進口?Java . net . *;
班級?UDPClient{
公共?靜電?作廢?main(String[]?args)扔?IOException{
DatagramSocket?客戶?=?新的?datagram socket();
字符串?sendStr?=?“妳好!?我是?客戶端”;
byte[]?sendBuf
sendBuf?=?sendstr . getbytes();
InetAddress?addr?=?inetaddress . get byname(" 127 . 0 . 0 . 1 ");
int?港口?=?5050;
DatagramPacket?發送數據包?
=?新的?DatagramPacket(sendBuf?,sendBuf.length?,?addr?,?港口);
client . send(send packet);
byte[]?recvBuf?=?新的?byte[100];
DatagramPacket?recvPacket
=?新的?DatagramPacket(recvBuf?,?recvbuf . length);
client . receive(recv packet);
字符串?recvStr?=?新的?String(recvPacket.getData()?,?0?,recv packet . getlength());
System.out.println("羅傑那:"?+?recvStr);
client . close();
}
}