Socket不断报错!!(记得\n要加上,以及Socket上流通的是字节!还有Socket需要借助数据流来完成数据传递工作,注意输入流的导包不要导入错误,是io流包)

简介: Socket不断报错!!(记得\n要加上,以及Socket上流通的是字节!还有Socket需要借助数据流来完成数据传递工作,注意输入流的导包不要导入错误,是io流包)

Socket不断报错!!(记得\n要加上,以及Socket上流通的是字节!还有Socket需要借助数据流来完成数据传递工作,注意输入流的导包不要导入错误,是io流包)


1,在Socket 客户端上写入的是字节。



0.png


错误代码:


1.png


2,Socket 客户端写入请求指令要以 \n 结尾(这里报错添加\n后正确的根本原因:“引自评论者:小新动感光波”:)

【ps:\n结束是因为你用了readLine,socket并没有强制要求你用\n作为结尾。


2.png


错误代码:


3.png


3,io 流导错包了,快捷键ctr+shift +o 导的包可能是第一个位置的“import org.omg.CORBA.portable.InputStream;”

 

✌全部代码:

❀class TCPServerSocket


package TCPDemo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * TCP服务端
 * @author Huangyujun
 *
 */
public class TCPServerSocket {
    private final static int port = 9527;
    public static void main(String[] args) throws IOException {
        //建立服务端
        ServerSocket serverSocket = new ServerSocket(port);
        //接收客户端
        System.out.println("服务端已经开启~");
        Socket clientSocket = serverSocket.accept();
        //输入流、输出流
        InputStream inStream =  clientSocket.getInputStream();
        OutputStream outStream = clientSocket.getOutputStream();
        //打印接受的内容
        BufferedReader bufferRead = new BufferedReader(new InputStreamReader(inStream));
        String line = bufferRead.readLine();
        System.out.println("服务端已经接收消息:"  + line);
    }
}


❀class TCPSocket


package TCPDemo;
import java.io.IOException;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;
/**
 * 客户端Socket
 * @author Huangyujun
 *
 */
public class TCPSocket {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        Socket socket = new Socket("localhost", 9527);    //连接服务端
        System.out.println("客户端发送消息:");
        String content  = scanner.next();
//        content += "\n";
        //输出流、输入流
        OutputStream outStream = socket.getOutputStream();
        InputStream inStream =  socket.getInputStream();
        //发送消息
        BufferedWriter bufferWriter = new BufferedWriter(new OutputStreamWriter(outStream));
//        bufferWriter.write(content);
        outStream.write(content.getBytes());
    }
}



目录
相关文章
|
Oracle NoSQL 关系型数据库
实时计算 Flink版操作报错之报错:java.lang.ClassNotFoundException: io.debezium.connector.common.RelationalBaseSourceConnector,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL Java 数据库连接
【YashanDB知识库】个别数据库用户无法登录数据库,报错 io fail:IO.EOF
【YashanDB知识库】个别数据库用户无法登录数据库,报错 io fail:IO.EOF
|
运维 Cloud Native Java
postman发起post请求遇到报错:java.io.FileNotFoundException (文件名、目录名或卷标语法不正确。)
遇到bug报错,多猜可能的原因,控制变量反复测试,直至找到问题的关键,然后再思考如何解决或者回避。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
|
关系型数据库 MySQL Linux
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
当MySQL 8.4启动时报错“io_setup() failed with EAGAIN”时,通常是由于系统AIO资源不足所致。通过增加AIO上下文数量、调整MySQL配置、优化系统资源或升级内核版本,可以有效解决这一问题。上述解决方案详细且实用,能够帮助管理员快速定位并处理此类问题,确保数据库系统的正常运行。
529 9
|
Unix 数据处理 Perl
|
NoSQL Redis 数据库
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
297 0
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
3813 1
|
关系型数据库 MySQL 数据库
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
1493 0