Android xiaobai 2021-09-06 16:12 采纳率: 0%
浏览 102
已结题

Java Socket 在传输String时,在字符串前出现了空格

img

如图片所示:客户端发来OK时,在服务器端字符串前出现空格,

img


package socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JFrame;
import javax.swing.JTextField;

import chat.ChatFrame;
import message_show.Messageshow;

/*
 * Socket接收消息
 */

public class Receive_Thread extends Thread{
    
    final int Socket_string = 1;
    final int Socket_picture = 2;
    final int Socket_vedio = 3;
    public int type;
    public String recontent;
    private InputStream is = null;    
    
    ChatFrame chatframe;
    Socket socket;
    public Receive_Thread(Socket socket,ChatFrame chatframe){
        this.chatframe=chatframe;
        this.socket=socket;
    }
    
    @Override
    public void run() {
        
        while(true){
            
            //一直等待接收消息    
            try {
                is = socket.getInputStream();
                
//                if(is!=null){
//                    System.out.println("laixiaoxil");
//                }
//                
//                else{
//                    System.out.println("kongde");
//                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            byte[] types = new byte[4];
            try {
                is.read(types);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            type = BytesUtils.bytes2Int(types);             
             if(type==1){
                //收到的是文字消息
                BufferedReader br = null;
                try {
                    br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                try {
                    while((recontent = br.readLine())!=null) {
                      recontent.trim();
                      System.out.println(recontent);
                      new Messageshow(chatframe.acceptPane,chatframe.scoPaneOne,false,recontent);
                         }
                    
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
             else if(type==2){
                 System.out.println("是图片呀");
             }
             
//             socket.isInputShutdown();
    }
        
    }
    
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月14日
    • 创建了问题 9月6日

    悬赏问题

    • ¥15 使用MATLAB进行余弦相似度计算加速
    • ¥15 服务器安装php5.6版本
    • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
    • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
    • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
    • ¥15 arcgis处理土地利用道路 建筑 林地分类
    • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
    • ¥100 寻会做云闪付tn转h5支付链接的技术
    • ¥15 DockerSwarm跨节点无法访问问题
    • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误