[英]How do i recieve a datagram packet
这是客户端框架。 在它是“你好服务器”行。 我想在服务器框架中显示“hello server”。 我到目前为止的代码是我从我的教科书中记住的。 我不记得其余的。
package datagrams;
import java.io.*;
import java.net.*;
public class Client extends javax.swing.JFrame implements Runnable {
public Client() {
initComponents();
}
@Override
public void run(){
DatagramSocket socket = null;
DatagramPacket recvPacket, sendPacket;
this.setVisible(true);
try {
socket = new DatagramSocket();
InetAddress hostAddress = InetAddress.getByName("localhost");
String userString = "hello server";
byte sendbuf[] = userString.getBytes();
sendPacket = new DatagramPacket(sendbuf, sendbuf.length, hostAddress, 1167);
socket.send(sendPacket);
recvPacket = new DatagramPacket(new byte[512], 512);
socket.receive(recvPacket);
catch(Exception ioe){
}
socket.close();
}
和服务器框架
package datagrams;
import java.io.*;
import java.net.*;
public class Server extends javax.swing.JFrame implements Runnable {
static int PORT = 7070;
public Server() {
initComponents();
}
@Override public void run(){
DatagramSocket socket = null;
DatagramPacket recvPacket, sendPacket;
this.setVisible(true);
try{
socket = new DatagramSocket(PORT);
while (socket != null){
recvPacket = new DatagramPacket(new byte[512], 512);
socket.receive(recvPacket);
sendPacket = new DatagramPacket(recvPacket.getData(), recvPacket.getLength(), recvPacket.getAddress(), recvPacket.getPort());
socket.send(sendPacket);
}
}
catch(IOException e){
System.out.println(e.toString());
}
socket.close();
}
在客户端程序中,您使用了端口1167 ...但是在服务器中,您尝试从端口7070接收....所以使端口相同(比如7070)接收消息....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.