gpt4 book ai didi

java - 在同一连接中向 TCP 服务器发送多条消息

转载 作者:可可西里 更新时间:2023-11-01 02:45:20 27 4
gpt4 key购买 nike

我用 Java 创建了一个 TCP 服务器,用 Ruby 创建了一个 TCP 客户端。问题是我无法在同一连接中发送多条消息,仅发送了第一条消息而未发送另一条消息。

这是Java代码

package com.roun512.tcpserver;

import java.io.*;
import java.net.*;

public class Program {


/**
* @param args
*/
public static void main(String[] args) throws Exception {

String clientSentence;
String capitalizedSentence;
ServerSocket Socket = new ServerSocket(6789);

while(true)
{
Socket connection = Socket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connection.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connection.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println(clientSentence);
capitalizedSentence = clientSentence + '\n';
outToClient.writeBytes(capitalizedSentence);
System.out.println("Sent msg");
}
}
}

这是客户端代码

客户端.rb

require 'socket'
class Client

def initialize()
server = TCPSocket.open("127.0.0.1", 6789)
if server.nil?
puts "error"
else
puts "connected"
end
server.puts("Hello\r\n")
sleep 2
server.puts("There\r\n")
server.close
end
end
Client.new()

我只收到Hello。我尝试了很多其他方法,但都没有用。

所以我的问题是如何在单个连接中发送多条消息,任何帮助将不胜感激:)

提前致谢!

最佳答案

Socket.accept() 在读取第一行后等待新的连接。尝试以下操作:

public static void main(String[] args) throws Exception {

String clientSentence;
String capitalizedSentence;
ServerSocket Socket = new ServerSocket(6789);

while (true)
{
Socket connection = Socket.accept();
while(true)
{
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connection.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connection.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println(clientSentence);
capitalizedSentence = clientSentence + '\n';
outToClient.writeBytes(capitalizedSentence);
System.out.println("Sent msg");
}
}
}

如果有效,请将 while (true) 更改为一些有意义的条件,并且不要忘记在工作完成后关闭连接。

关于java - 在同一连接中向 TCP 服务器发送多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29404133/

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