0
クライアントコンピュータの完全なシステム情報をサーバーコンピュータに送信するJavaアプリケーションを作成します。以下のプログラムでは、私はタスクを達成することができますが、空白に遭遇するとメッセージが分割されます。分割メソッドを削除しようとしましたが、機能しません。クライアントシステムのプロパティをJavaのサーバーコンピュータに送信する方法は?
クライアントは、整形された行形式でサーバーに情報を送信する必要があります。
P.S-私はYoutubeビデオチュートリアルを参照していました。
Client.java
import java.io.*;
import java.net.*;
import java.util.Properties;
public class MyClient
{
public static void main(String args[])
{
DatagramSocket datagramSocket;
try {
datagramSocket=new DatagramSocket(); //Creating Datagram socket
String message=System.getProperties().toString(); //Creating message
byte [] bytes=message.getBytes(); //Converting string message to byte format
InetAddress host= InetAddress.getByName("localhost"); //Specifying server address
int server_socket=6780; //Defining the socket tot be used
//Sending
DatagramPacket request= new DatagramPacket(bytes,bytes.length,host,server_socket);
datagramSocket.send(request);
//Receiving
byte[] buffer=new byte[1000];
DatagramPacket reply= new DatagramPacket(buffer,buffer.length);
datagramSocket.receive(reply);
//Printing the reply
System.out.println("Client Received: "+new String(reply.getData()));
//Closing the socket
datagramSocket.close();
}
catch (Exception e)
{
}
}
}
**Server.java**
import javax.xml.crypto.Data;
import java.io.*;
import java.net.*;
public class MyServer
{
public static void main(String[] args)
{
DatagramSocket datagramSocket=null;
try {
datagramSocket = new DatagramSocket(6780);
byte[] buffer = new byte[1000];
int i=0;
while (true) {
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
datagramSocket.receive(request);
String [] arrayMsg= (new String(request.getData())).split(" ");
byte [] sendMessage=(arrayMsg[i]+" Server Processed").getBytes();
DatagramPacket reply=new DatagramPacket(sendMessage,sendMessage.length,request.getAddress(),request.getPort());
datagramSocket.send(reply);
i++;
}
}
catch (Exception e) {
}
}
}
のCASで
失われたパケット別のものに分割する。たとえば "<+>"というトークンであることが保証されているものを作ってください。そのようなことが起きる可能性はごくわずかです。 – Stultuske
分割ループ外で受信を移動する必要があります。 – EJP
Never Write catch(Exception e){}常に例外を処理するpoperbly – Jens