TCP
بروتوكول TCP هو موجه نحو الاتصال ويضمن موثوقية عالية (البيانات دون فقدان ، بيانات دون اضطراب ، بيانات دون خطأ ، وبيانات دون وصول مكرر).
TCP ينشئ اتصال من خلال ثلاثة مصافحة. يجب إزالة الاتصال عند اكتمال الاتصال. نظرًا لأن TCP متصل بالاتصال ، لا يمكن استخدامه إلا للاتصال الشامل.
تقدم هذه المقالة بشكل أساسي المحتوى ذي الصلة لـ Java باستخدام TCP لتنفيذ دردشة بسيطة. يتم مشاركته للرجوع إليه وتعلمك. لن أقول الكثير أدناه. دعونا نلقي نظرة على المقدمة التفصيلية معًا.
نموذج الرمز
وظيفة الدردشة البسيطة التي تم تنفيذها باستخدام بروتوكول TCP (بسيط للغاية)
الفكر: استخدم مؤشر ترابط 2 ، ويتم استخدام مؤشر ترابط واحد لتلقي الرسائل ، ويتم استخدام مؤشر الترابط الآخر لإرسال الرسائل.
رمز العميل التجريبي:
الفئة العامة SendDemo {public static void main (string [] args) يرمي استثناء {Socket Socket = New Socket (inetaddress.getlocalhost () ، 8888) ؛ sendimpl sendimpl = sendimpl جديد (مأخذ) ؛ // إرسال موضوع جديد (sendimpl) .start () ؛ // استقبال مؤشر ترابط التكرار RECIVEIMPL = جديد التكرار (مأخذ التوصيل) ؛ موضوع جديد (dreciveimpl) .start () ؛ }}رمز التجريبي من جانب الخادم:
الفئة العامة ServerDemo {public static void main (string [] args) يلقي استثناء {serversocket serversocept = new serversocket (8888) ؛ Socket Socket = ServersOcket.accept () ؛ sendimpl sendimpl = sendimpl جديد (مأخذ) ؛ موضوع جديد (sendImpl) .start () ؛ DreciveImpl DreciveImpl = New DreciveImpl (Socket) ؛ موضوع جديد (dreciveimpl) .start () ؛ }}الرمز التجريبي لإرسال الموضوع:
الطبقة العامة SendImpl تنفذ Runnable {Socket Socket ؛ sendimpl العامة (مقبس المقبس) {this.socket = socket ؛ // TODO AUDALED CONTRUCTOR CONTRUCTOR} Override public void run () {scanner scanner = new scanner (system.in) ؛ بينما (صحيح) {try {outputStream outputStream = socket.getOutputStream () ؛ String string = scanner.nextLine () ؛ outputStream.write (string.getBytes ()) ؛ } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ }}}}الرمز التجريبي لاستلام الموضوع:
الطبقة العامة RECIVEIMPL تنفذ Runnable {Private Socket Socket ؛ Public ReciveImpl (Socket Socket) {this.socket = socket ؛ // TODO Auto Constructor Stub} Override public void run () {بينما (true) {try {inputStream inputStream = socket.getInputStream () ؛ بايت [] ب = بايت جديد [1024] ؛ int len = inputStream.Read (b) ؛ System.out.println ("Message receed:"+New String (B ، 0 ، Len)) ؛ } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ }}}}لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.