私はUDPサーバークライアントプログラムを作成しました。私が直面している問題は、私がサーバプログラムを実行しているときに、クライアントが接続するのを待っていないということです。最後まで実行した後、全体コードが実行されています。そして、私は、サーバー側の実行の間にクライアント側を実行しているとき、クライアント側は実行ポイントからデータを受信しています。ここでUdpサーバークライアントJava
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(4321);
byte[] sendData;
String sentence = null;
FileInputStream file = new FileInputStream(new File("E:\\Deepak.txt"));
InetAddress IPAddress=InetAddress.getByName("localhost");
BufferedReader in = new BufferedReader(new InputStreamReader(file));
do{
while((sentence = in.readLine()) != null)
{
Thread.sleep(3000);
System.out.println(sentence);
sendData = sentence.getBytes();
DatagramPacket sendPacket =new DatagramPacket(sendData, sendData.length,IPAddress,9876);
serverSocket.send(sendPacket);
}
}while(true);
}
コード - 私のサーバーは、ここではUDP
public static void main(String args[]) throws SocketException, UnknownHostException, IOException
{
DatagramSocket clientSocket = new DatagramSocket();
byte[] receiveData = new byte[1024];
String sentence ;
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
receivePacket.getLength();
System.out.println(receivePacket.getLength());
clientSocket.receive(receivePacket);
sentence = new String(receivePacket.getData());
}
}
クライアントが「接続」している場合にのみデータを送信するサーバーを使用する場合、UDPの上に自分の接続を実装する方法を教えてください。私はソケットプログラミングの新しいです。 –
'receive'を行うためにサーバを変更することはできませんか?それは最も簡単な方法です。 –
いいえ、私の特定のアプリケーションは、受信者として送信者とクライアントとしてサーバーを実装する必要があります。 –