【发布时间】:2017-11-13 00:47:37
【问题描述】:
我正在尝试向客户端发送数据,但我还没有弄清楚 这是我的代码。
UDP 客户端:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
DatagramSocket datagramSocket = new DatagramSocket( );
InetAddress ipServer = InetAddress.getByName("localhost");
byte[] sendDatagram = new byte[1054];
byte[] sendDatagramB = new byte[1055];
byte[] sendDatagramC = new byte[1056];
byte[] receiveDatagram = new byte[1054];
byte[] receiveDatagramB = new byte[1055];
byte[] receiveDatagramC = new byte[1056];
while (true) {
System.out.println("Ingrese X");
String msgA = input.readLine();
System.out.println("Ingrese B");
String msgB = input.readLine();
System.out.println("Ingrese C");
String msgC = input.readLine();
sendDatagram = (msgA.getBytes());
DatagramPacket sendPacket = new DatagramPacket(sendDatagram, sendDatagram.length, ipServer, 6667);
datagramSocket.send(sendPacket);
sendDatagramB = (msgB.getBytes());
DatagramPacket sendPacketB = new DatagramPacket(sendDatagramB, sendDatagramB.length, ipServer, 6667);
datagramSocket.send(sendPacketB);
sendDatagramC = (msgC.getBytes());
DatagramPacket sendPacketC = new DatagramPacket(sendDatagramC, sendDatagramC.length, ipServer, 6667);
datagramSocket.send(sendPacketC);
}
UDP-服务器:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
DatagramSocket datagramSockets = new DatagramSocket( );
InetAddress ipServer = InetAddress.getByName("localhost");
byte[] sendDatagrams = new byte[1054];
byte[] receiveDatagrams = new byte[1054];
DatagramSocket datagramSocket = new DatagramSocket(6667);
byte[] sendDatagram = new byte[1054];
byte[] receiveDatagram = new byte[1054];
byte[] sendDatagramB = new byte[1055];
byte[] receiveDatagramB = new byte[1055];
byte[] sendDatagramC = new byte[1056];
byte[] receiveDatagramC = new byte[1056];
System.out.println("Server Start");
while (true){
DatagramPacket receivePacket = new DatagramPacket(receiveDatagram,receiveDatagram.length);
datagramSocket.receive(receivePacket);
String receive = new String(receivePacket.getData());
System.out.println(receive+"x");
InetAddress ipClient = receivePacket.getAddress();
int portClient = receivePacket.getPort();
receiveDatagram = new byte[1054];
String msgClient = "Hola Mundo";
DatagramPacket receivePacketB = new DatagramPacket(receiveDatagramB,receiveDatagramB.length);
datagramSocket.receive(receivePacketB);
String receiveB = new String(receivePacketB.getData());
System.out.println(receiveB+"y");
InetAddress ipClientB = receivePacketB.getAddress();
int portClientB = receivePacketB.getPort();
receiveDatagramB = new byte[1055];
String msgClientB = "Hola Mundo";
DatagramPacket receivePacketC = new DatagramPacket(receiveDatagramC,receiveDatagramB.length);
datagramSocket.receive(receivePacketC);
String receiveC = new String(receivePacketC.getData());
System.out.println(receiveC+"z");
InetAddress ipClientC = receivePacketC.getAddress();
int portClientC = receivePacketC.getPort();
receiveDatagramC = new byte[1056];
String msgClientC = "Hola Mundo";
Double x1 = (-portClientB - (Math.sqrt((portClient*portClientB - ((4*portClient*portClientC))))))/ (2 * portClientC);
Double x2 = (-portClientB + (Math.sqrt((portClient*portClientB - ((4*portClient*portClientC))))))/ (2 * portClientC);
String xa = String.valueOf(x1);
String xb = String.valueOf(x2);
System.out.println("El Resultado de x1 es = "+" "+x1);
System.out.println("El Resultado de x1 es = "+" "+x2);
}
我想将字符串XA 和XB 发送给客户端。
【问题讨论】:
-
为什么不用mina.apache.org 或netty.io 来代替?
-
它到底在做什么或不做什么?
-
@roelofs 除了我需要找出或知道如何将这两个字符串发送给客户端之外,它正在做所有事情。
-
您能否将这些详细信息以及有关您的整体设置的更多信息添加到您的问题中?仅通过查看代码很难推断您的问题是什么......
-
UDP 没有客户端或服务器。 UDP 是一种具有发送者和接收者的无连接协议。客户端/服务器概念是应用层概念,而不是传输层概念。
标签: java networking udpclient