java中处理socket通信过程中粘包的情况
这两天学习了java中处理socket通信过程中粘包的情况,而且很重要,所以,今天添加一点小笔记。
处理粘包程序是客户端的接受消息线程:
客户端:
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.io.PrintWriter;
importjava.io.Reader;
importjava.net.Socket;
importjava.nio.CharBuffer;
publicclassTestSocketClient{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
newTestSocketClient().start();
}
classSendThreadextendsThread{
privateSocketsocket;
publicSendThread(Socketsocket){
this.socket=socket;
}
@Override
publicvoidrun(){
while(true){
try{
Thread.sleep(1000);
Stringsend=""+System.currentTimeMillis()+" ";
PrintWriterpw=newPrintWriter(newOutputStreamWriter(socket.getOutputStream()));
pw.write(send);
pw.flush();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
classReceiveThreadextendsThread{
privateSocketsocket;
privatevolatilebyte[]bytes=newbyte[0];
publicReceiveThread(Socketsocket){
this.socket=socket;
}
publicbyte[]mergebyte(byte[]a,byte[]b,intbegin,intend){
byte[]add=newbyte[a.length+end-begin];
inti=0;
for(i=0;i
服务端:
packagecom.meituan.service.bankgate.gateway;
/**
*Createdbycqxon16/7/19.
*/
importjava.io.*;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.nio.CharBuffer;
importjava.util.Date;
publicclassTESTAHAHHA{
privatefinalstaticStringSOAP_BEGIN="1024*16){
break;
}
}
}catch(Exceptione){
e.printStackTrace();
}finally{
if(socket!=null){
try{
if(!socket.isClosed()){
socket.close();
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
}
}
}
 
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
 