TCP
โปรโตคอล TCP เป็นการเชื่อมต่อที่มุ่งเน้นและรับประกันความน่าเชื่อถือสูง (ข้อมูลโดยไม่สูญเสียข้อมูลที่ไม่มีความผิดปกติข้อมูลโดยไม่มีข้อผิดพลาดและข้อมูลโดยไม่ต้องมาถึงซ้ำ)
TCP สร้างการเชื่อมต่อผ่านการจับมือสามครั้ง การเชื่อมต่อจะต้องถูกลบออกเมื่อการสื่อสารเสร็จสิ้น เนื่องจาก TCP เชื่อมต่อกับการเชื่อมต่อจึงสามารถใช้สำหรับการสื่อสารแบบ end-to-end เท่านั้น
บทความนี้ส่วนใหญ่แนะนำเนื้อหาที่เกี่ยวข้องของ Java โดยใช้ TCP เพื่อใช้การแชทอย่างง่าย มันถูกแบ่งปันสำหรับการอ้างอิงและการเรียนรู้ของคุณ ฉันจะไม่พูดด้านล่างมากนัก มาดูการแนะนำรายละเอียดร่วมกันกันเถอะ
รหัสตัวอย่าง
ฟังก์ชั่นแชทง่าย ๆ ใช้งานโดยใช้โปรโตคอล TCP (ง่ายมาก)
ความคิด: ใช้ 2 เธรด, หนึ่งเธรดที่ใช้เพื่อรับข้อความและเธรดอื่น ๆ จะใช้เพื่อส่งข้อความ
รหัสสาธิตลูกค้า:
คลาสสาธารณะ SendDemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {ซ็อกเก็ตซ็อกเก็ต = ซ็อกเก็ตใหม่ (inetaddress.getLocalhost (), 8888); sendimpl sendimpl = ใหม่ sendimpl (ซ็อกเก็ต); // ส่งเธรดใหม่ (sendimpl). start (); // รับเธรด reciveimpl reciveimpl = ใหม่ reciveimpl (ซ็อกเก็ต); เธรดใหม่ (reciveimpl). start (); -รหัสสาธิตฝั่งเซิร์ฟเวอร์:
คลาสสาธารณะ ServerDemo {โมฆะคงที่สาธารณะหลัก (String [] args) พ่นข้อยกเว้น {Serversocket Serversocket = Serversocket ใหม่ (8888); ซ็อกเก็ตซ็อกเก็ต = serversocket.accept (); sendimpl sendimpl = ใหม่ sendimpl (ซ็อกเก็ต); เธรดใหม่ (sendimpl) .start (); reciveimpl reciveimpl = ใหม่ reciveimpl (ซ็อกเก็ต); เธรดใหม่ (reciveimpl). start (); -รหัสสาธิตสำหรับการส่งเธรด:
Public Class Sendimpl ใช้งานได้ {ซ็อกเก็ตซ็อกเก็ตส่วนตัว; สาธารณะ sendimpl (ซ็อกเก็ตซ็อกเก็ต) {this.socket = ซ็อกเก็ต; // todo toDo stub stub @Override public Public Void Run () {Scanner Scanner = สแกนเนอร์ใหม่ (System.in); ในขณะที่ (จริง) {ลอง {outputStream outputStream = socket.getOutputStream (); String string = scanner.nextline (); outputStream.write (string.getBytes ()); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); -รหัสสาธิตสำหรับการรับเธรด:
Public Class ReciveImpl ใช้งาน Runnable {ซ็อกเก็ตซ็อกเก็ตส่วนตัว; สาธารณะ reciveimpl (ซ็อกเก็ตซ็อกเก็ต) {this.socket = ซ็อกเก็ต; // todo toDo ที่สร้างขึ้นอัตโนมัติ stub stub} @Override โมฆะสาธารณะเรียกใช้ () {ในขณะที่ (จริง) {ลอง {inputStream inputStream = socket.getInputStream (); ไบต์ [] b = ไบต์ใหม่ [1024]; int len = inputstream.read (b); System.out.println ("ข้อความที่ได้รับ:"+สตริงใหม่ (b, 0, len)); } catch (ioexception e) {// todo บล็อก catch block ที่สร้างอัตโนมัติ e.printstacktrace (); -สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com