一. : :
استيراد java.io.*؛ استيراد java.net.*؛ الطبقة العامة udpechoserver {private static final int echomax = 255 ؛ // الحد الأقصى لحجم صدى Datagram public static void Main (String [] args) يلقي ioException {int servport = 5500 ؛ // Server Port DataGramSocket Socket = dataGramSocket جديد (servport) ؛ حزمة datagrampacket = datagrampacket جديد (بايت جديد [echomax] ، echomax) ؛ بينما (صحيح) {// قم بتشغيل Forever ، وتلقي وتردد بيانات DataGrams Socket.Receive (حزمة) ؛ // تلقي الحزمة من client system.out.println ("معالجة العميل في" + packet.getAddress (). gethostaddress () + "على المنفذ" + packet.getport ()) ؛ Socket.send (حزمة) ؛ // إرسال نفس الحزمة مرة أخرى إلى Client Packet.SetLength (Echomax) ؛ // قم بإعادة الضبط لتجنب تقليص المخزن المؤقت}/ * لم يتم الوصول إليه */}}二. : :
استيراد java.net.*؛ استيراد java.io.*؛ الطبقة العامة udpechoclienttimeout {private static final timeout = 3000 ؛ // إعادة تأجيل المهلة (milliseconds) Final Static Final MaxTries = 5 ؛ // Maximum Retransmissions public static void main (string [] args) يلقي ioException {inetaddress serveraddress = inetaddress.getByName ("127.0.0.1") ؛ // عنوان الخادم int servport = 5500 ؛ // server port // قم بتحويل سلسلة الوسيطة إلى بايت باستخدام بايت الترميز الافتراضي [] bytestosend = "hi ، world" .getBytes () ؛ DataGramSocket Socket = datagramsocket () جديد ؛ Socket.SetSotimeout (timeout) ؛ // الحد الأقصى لاستلام وقت الحظر (milliseconds) // إرسال حزم datagrampacket sendPacket = جديد datagrampacket (bytestosend ، bytestosend.length ، serveraddress ، servport) ؛ datagrampacket receptpacket = // تلقي حزمة datagrampacket جديدة (byte new [bytestosend.length] ، bytestosend.length) ؛ محاولات int = 0 ؛ // قد تضيع الحزم ، لذلك يتعين علينا الاستمرار في محاولة الاستلام المنطقية = false ؛ do {socket.send (sendPacket) ؛ // إرسال سلسلة Echo Try {socket.receive (receptpacket) ؛ // محاولة استقبال صدى الرد إذا (! recepacket.getAddress (). يساوي (serveraddress)) {// check // source رمي ioException جديد ("الحزمة المستلمة من مصدر غير معروف") ؛ } traintResponse = true ؛ } catch (interruptedioException e) {// لم نحصل على أي شيء محاولات += 1 ؛ System.out.println ("Timed Out ،" + (MaxTries - Tries) + "المزيد من المحاولات ...") ؛ }} بينما ((! travelResponse) && (يحاول <maxtries)) ؛ if (traugeResponse) {system.out.println ("trab:" + new string (receptpacket.getData ())) ؛ } آخر {system.out.println ("لا استجابة - الاستسلام.") ؛ } socket.close () ؛ }}上述代码的 UDP 服务端是单线程 , 一次只能服务一个客户端。
以上就是本文的全部内容 , 查看更多 java 的语法 , : : 《التفكير في java 中文手册》、《 jdk 1.7 参考手册官方英文版》、《 jdk 1.6 api java 中文参考手册》、《 jdk 1.5 api java 中文参考手册》 , 也希望大家多多支持武林网。