บทความนี้แชร์ตัวอย่างของการสตรีม BYTE SOGKE BYTE สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
ด้านเซิร์ฟเวอร์:
แพ็คเกจ com.yuan.socket; นำเข้า java.io.*; นำเข้า java.net.serversocket; นำเข้า java.net.socket;/*** สร้างโดยหยวนในปี 2016-09-17 */Public Class Talkserver4Byte {เซิร์ฟเวอร์เซิร์ฟเวอร์เซิร์ฟเวอร์ส่วนตัว; พอร์ต int ส่วนตัว = 5020; Public Talkserver4Byte () {ลอง {Server = ใหม่ Serversocket (พอร์ต); } catch (ioexception e) {}} โมฆะสาธารณะพูดคุย () {system.out.println ("พอร์ตมอนิเตอร์:" + พอร์ต); ซ็อกเก็ตซ็อกเก็ต = null; ในขณะที่ (จริง) {ลอง {// การบล็อกและรอการสร้างอินสแตนซ์การเชื่อมต่อใหม่สำหรับทุกคำขอที่ได้รับ socket = server.accept (); System.out.println ("เชื่อมต่อที่อยู่ไคลเอนต์:" + socket.getRemotesocketAddress ()); // สตรีมการตกแต่ง bufferedreader ห่อหุ้มสตรีมอินพุต (รับไคลเอนต์สตรีม) bufferedInputStream bis = ใหม่ bufferedInputStream (socket.getInputStream ()); datainputStream dis = new datainputStream (bis); ไบต์ [] ไบต์ = ไบต์ใหม่ [1]; // อ่านหนึ่งไบต์ต่อครั้ง ret = ""; ในขณะที่ (dis.read (ไบต์)! = -1) {ret + = bytestohexstring (ไบต์) + ""; if (dis.available () == 0) {// คำขอ dosomething (ret); }}} catch (ioexception e) {system.out.println (e.getMessage ()); } ในที่สุด {ลอง {socket.close (); } catch (ioexception e) {system.out.println (e.getMessage ()); }}}} โมฆะแบบคงที่สาธารณะ dosomething (สตริง ret) {system.out.println (ret); } สตริงคงที่สาธารณะ bytestohexstring (byte [] src) {stringbuilder stringbuilder = new StringBuilder (""); if (src == null || src.length <= 0) {return null; } สำหรับ (int i = 0; i <src.length; i ++) {int v = src [i] & 0xff; สตริง hv = integer.tohexstring (v); if (hv.length () <2) {stringbuilder.append (0); } StringBuilder.Append (HV); } return stringbuilder.toString (); } สตริงคงที่สาธารณะ byteshexString (byte [] b) {string ret = ""; สำหรับ (int i = 0; i <b.length; i ++) {string hex = integer.tohexstring (b [i] & 0xff); if (hex.length () == 1) {hex = '0' + hex; } ret += hex.touppercase (); } return ret; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {talkserver4byte เซิร์ฟเวอร์ = ใหม่ talkserver4byte (); Server.talk (); - รหัสไคลเอนต์ไคลเอนต์:
แพ็คเกจ com.yuan.socket; นำเข้า java.io.datainputstream; นำเข้า java.io.dataoutputstream; นำเข้า java.io.ioException; นำเข้า java.io.inputstream; นำเข้า Java.net.inputsocketaddress; 2016-09-17 */คลาสสาธารณะ TalkClient4Byte {ซ็อกเก็ตซ็อกเก็ตส่วนตัว; ที่อยู่ซ็อกเก็ตส่วนตัวส่วนตัว Public TalkClient4Byte () {ลอง {ซ็อกเก็ต = ซ็อกเก็ตใหม่ (); ที่อยู่ = ใหม่ inetSocketAddress ("127.0.0.1", 5020); Socket.Connect (ที่อยู่, 1,000); } catch (ioexception e) {e.printstacktrace (); }} โมฆะสาธารณะพูดคุย () {ลอง {// ใช้ datainputStream เพื่อห่อหุ้มอินพุตสตรีมอินพุตสตรีม = ใหม่ datainputStream (System.in); ไบต์ [] b = ไบต์ใหม่ [1]; DataOrtputStream DOS = ใหม่ dataOutputStream (socket.get.getOutputStream ()); ในขณะที่ (-1! = os.read (b)) {dos.write (b); // ส่งไปยังไคลเอนต์} dos.flush (); dos.close (); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ลอง {socket.close (); } catch (ioexception e) {}}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {client talkClient4Byte = ใหม่ talkClient4Byte (); client.talk (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น