Hướng dẫn lập trình Client - Server UDP bằng JAVA

- Bước 1: Tạo một tiến trình Server class DatagramServer

import java.net.*;
import java.io.*;
public class DatagramServer {
public static void main(String[] args) {
DatagramPacket datapacket, returnpacket;
int port = 2018;
int len = 1024;
try {
DatagramSocket datasocket = new DatagramSocket(port);
byte[] buf = new byte[len];
datapacket = new DatagramPacket(buf, buf.length);
while (true) {
try {
datasocket.receive(datapacket);
returnpacket = new DatagramPacket(
datapacket.getData(),
datapacket.getLength(),
datapacket.getAddress(),
datapacket.getPort());

datasocket.send(returnpacket);
} catch (IOException e) {
System.err.println(e);
}
}
} catch (SocketException se) {
System.err.println(se);
}
}
}

- Bước 2: Tạo một tiến trình Client class DatagramClient



package server_client_UDP;

import java.net.*;
import java.io.*;
public class DatagramClient {
public static void main(String[] args) {
String hostname;
int port = 2018;
int len = 1024;
DatagramPacket sPacket, rPacket;
if (args.length > 0)
hostname = args[0];
else
hostname = "localhost";
try {
InetAddress ia = InetAddress.getByName(hostname);
DatagramSocket datasocket = new DatagramSocket();
BufferedReader stdinp = new BufferedReader(new InputStreamReader(System.in));
while (true) {
try {
String echoline = stdinp.readLine();
if (echoline.equals("done")) break;
byte[] buffer = new byte[echoline.length()];
buffer = echoline.getBytes();
sPacket = new DatagramPacket(buffer, buffer.length, ia, port);
datasocket.send(sPacket);
byte[] rbuffer = new byte[len];
rPacket = new DatagramPacket(rbuffer, rbuffer.length);
datasocket.receive(rPacket);
String retstring = new String(rPacket.getData());
System.out.println("Server gửi về: "+retstring);
} catch (IOException e) {
System.err.println(e);
}
} // while
} catch (UnknownHostException e) {
System.err.println(e);
} catch (SocketException se) {
System.err.println(se);
}
} // end main

public static class DatagramServer {
public static void main(String[] args) {
DatagramPacket datapacket, returnpacket;
int port = 2018;
int len = 1024;
try {
DatagramSocket datasocket = new DatagramSocket(port);
byte[] buf = new byte[len];
datapacket = new DatagramPacket(buf, buf.length);
while (true) {
try {
datasocket.receive(datapacket);
returnpacket = new DatagramPacket(
datapacket.getData(),
datapacket.getLength(),
datapacket.getAddress(),
datapacket.getPort());
datasocket.send(returnpacket);
} catch (IOException e) {
System.err.println(e);
}
}
} catch (SocketException se) {
System.err.println(se);
}
}
}
}

Chạy cả 2 chương trình cùng lúc, và gõ một chuỗi bên phía client , client ---> server và server ---> client để hiện ra màn hình.



Related Posts