मैं यहाँ एक सर्वर के लिए एक ग्राहक से एक यूडीपी पैकेट भेजने के लिए एक कार्यक्रम बनाया है ट्रांसमीटर कोडजावा का उपयोग कर यूडीपी पैकेट भेजना और प्राप्त करना?
import java.io.IOException;
import java.net.*;
/**
*
* @author hp
*/
public class JavaApplication9 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws UnknownHostException, SocketException, IOException {
// TODO code application logic here
byte[] buffer = {10,23,12,31,43,32,24};
byte [] IP={-64,-88,1,106};
InetAddress address = InetAddress.getByAddress(IP);
DatagramPacket packet = new DatagramPacket(
buffer, buffer.length, address, 57
);
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.send(packet);
System.out.println(InetAddress.getLocalHost().getHostAddress());
}
}
रिसीवर कोड समारोह
public void run(){
try{
DatagramSocket serverSocket = new DatagramSocket(port);
byte[] receiveData = new byte[8];
byte[] sendData = new byte[8];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
System.out.println("RECEIVED: " + sentence);
InetAddress IPAddress = receivePacket.getAddress();
String sendString = "polo";
sendData = sendString.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
serverSocket.send(sendPacket);
}
}catch (Exception e){
}
}
मैं WireShark कार्यक्रम का इस्तेमाल किया है है। यूडीपी पैकेट रिसीवर पर वायरशर्क कार्यक्रम में प्राप्त होता है लेकिन जावा प्रोग्राम इसे पहचान नहीं पाएगा, कार्यक्रम सिर्फ बंदरगाह को सुनता रहता है और कुछ भी नहीं होता है?
क्या आप वाकई सर्वर सही पोर्ट सुन रहा है कर रहे हैं:
यहाँ एक सरल यूडीपी रिसीवर है कि काम करता है? – elias
जब तक 'पता' सही नहीं है और 'पोर्ट' 57 है, तो यह कोड पहले' प्राप्त() 'कॉल में अवरुद्ध होगा। – EJP
आईपी पते को नकारात्मक संख्या के रूप में प्रस्तुत न करें। यह हास्यास्पद है। वास्तविक ऑक्टेट मान लिखें और कास्ट का उपयोग करें। – EJP