0
私はEcho
サーバクライアントUDPアプリケーションを作成しようとしています。クライアントは20以上の番号を送信するはずで、サーバーはそれらを返信します。しかし、私が持っているものから、それはString
からのfirst character
だけが送信されていることを示しています。私は教授に助けを求めましたが、それも分かりませんでした。いくつかの助けがいいだろう。ありがとうございました!Javaの最初の文字を表示するUDPデータグラム
Client.java:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class client {
public static void main(String[] args) {
DatagramSocket socket;
try {
socket = new DatagramSocket();
InetAddress address = InetAddress.getByName("localhost");
byte[] buf = new byte[256];
for (Integer i = 1; i < 21; i++) {
buf = i.toString().getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 4445);
socket.send(packet);
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
String received = new String(packet.getData(), 0, packet.getLength());
System.out.println("Server: " + received);
}
socket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Server.java:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class server {
public static void main(String argsp[]) {
DatagramSocket socket;
try {
socket = new DatagramSocket(4445);
byte[] buf = new byte[256];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
while (true) {
socket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println("Client: " + message);
buf = message.getBytes();
InetAddress address = packet.getAddress();
int port = packet.getPort();
packet = new DatagramPacket(buf, buf.length, address, port);
socket.send(packet);
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
クライアント出力:
Server: 1
Server: 2
Server: 3
Server: 4
Server: 5
Server: 6
Server: 7
Server: 8
Server: 9
Server: 1
Server: 1
Server: 1
Server: 1
Server: 1
Server: 1
Server: 1
Server: 1
Server: 1
Server: 1
Server: 2
サーバー出力:
Client: 1
Client: 2
Client: 3
Client: 4
Client: 5
Client: 6
Client: 7
Client: 8
Client: 9
Client: 1
Client: 1
Client: 1
Client: 1
Client: 1
Client: 1
Client: 1
Client: 1
Client: 1
Client: 1
Client: 2
私はそれを知らなかった。私がループに入る前に 'buf'と' DatagramPacket'を定義すると、全体を通して同じように留まると思いました。ご協力ありがとうございました! – Ccyan