gpt4 book ai didi

Java DataOutputStream 不向套接字发送数据

转载 作者:行者123 更新时间:2023-12-03 12:04:28 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Java Socket why server can not reply client

(4 个回答)


2年前关闭。




我有一个使用套接字与另一台计算机通信的 java 应用程序。我正在使用 DataOutputStream 将数据写入服务器,并使用 BufferedReader 从服务器读取数据。在解决问题之前,我可以成功地多次从服务器发送和读取响应。

但是有一部分我发送了两个,writeBytes()一个接一个地发挥作用。此时,我的服务器只读取第一个字符串并停留在 readline() 上。即使我在第二个 writeBytes() 上发送了另一个字符串.

这是我的片段:

InetAddress ipServer = InetAddress.getByName(direcciones.get(0).host);
Socket clientSocket = new Socket(ipServer,25);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String response = inFromServer.readLine();

这里我只得到 email.data 字符串而不是“。”那是之后。
outToServer.writeBytes(email.data+"\r\n");
outToServer.writeBytes("."+ "\r\n");
response = inFromServer.readLine();

这是在服务器上读取数据的方式:
while(mailReady == false){
String linea;
linea = input.readLine();
System.out.println("INPUT Paso5: "+linea);
email.data += linea+"\n";

if(linea.equals(".")){
mailReady = true;
...

其中输入是 BufferedReader。

谁能告诉我这里发生了什么?

最佳答案

你在读台词,但你不是在写台词。而不是 DataOutoutStream.writeBytes()你应该使用 BufferedWriter.write()后跟 BufferedWriter.newline().

关于Java DataOutputStream 不向套接字发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35354853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com