Home > JAVA > โปรแกรมจาวา UDPEchoServer

โปรแกรมจาวา UDPEchoServer

December 29, 2009 No Comments    

ต่อไปจะเป็นตัวอย่างโปรแกรม UDP ที่เขียนด้วยภาษาจาวาซึ่งจะทำหน้าที่เป็น server โดยที่จะรับข้อความจาก client และตอบกลับไปยัง client ซึ่งโปรแกรมจะมีความแตกต่างกับโปรแกรมแบบ TCP

ในโปรแกรมนี้จะต้องมีการดักจับความผิดพลาดคือ IOException ใน main แทนด้วย SocketException

ตัวอย่างโค้ด


import java.io.*;

import java.net.*;

public class UDPEchoServer

{

private static final int PORT = 1234;

private static DatagramSocket datagramSocket;

private static DatagramPacket inPacket, outPacket;

private static byte[] buffer;

public static void main(String[] args)

{

System.out.println("Opening port...\n");

try

{

datagramSocket =new DatagramSocket(PORT); <strong>//Step 1.</strong>

}

catch(SocketException sockEx)

{

System.out.println("Unable to attach to port!");

System.exit(1);

}

handleClient();

}

private static void handleClient()

{

try

{

String messageIn,messageOut;

int numMessages = 0;

do

{

buffer = new byte[256]; <strong>//Step 2.</strong>

inPacket =new DatagramPacket(buffer, buffer.length); <strong>//Step3.</strong>

datagramSocket.receive(inPacket);<strong>//Step 4.</strong>

InetAddress clientAddress =inPacket.getAddress(); <strong>//Step 5.</strong>

int clientPort =inPacket.getPort(); <strong>//Step 5.</strong>

messageIn =new String(inPacket.getData(),0,inPacket.getLength());

<strong>//Step 6.</strong>

System.out.println("Message received.");

numMessages++;

messageOut = "Message " + numMessages+ ": " + messageIn;

outPacket =new DatagramPacket(messageOut.getBytes(),

messageOut.length(),clientAddress,clientPort); <strong>//Step 7.</strong>

datagramSocket.send(outPacket); <strong>//Step 8.</strong>

}while (true);

}

catch(IOException ioEx)

{

ioEx.printStackTrace();

}

finally //If exception thrown, close connection.

{

System.out.println("\n* Closing connection... *");

datagramSocket.close(); <strong>//Step 9.</strong>

}

}

}

ซึ่งนี้ก็เป็นตัวอย่างโปรแกรมจาวา ซึ่ง UDP นั้นจะไม่มีการเชื่อมจริงระหว่าง server กับ client เหมือนกับการส่งจดหมายแต่ TCP นั้นจะเป็นการส่งที่มีการเชื่อมต่อ เหมือนกับโทรศัพท์

Tags: , , , ,

Comments : โปรแกรมจาวา UDPEchoServer

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>