gpt4 book ai didi

java - 无法在java中的tcpserver和tcpclient之间连续发送数据

转载 作者:可可西里 更新时间:2023-11-01 02:54:38 24 4
gpt4 key购买 nike

服务器接受连接后,我的 TCP 客户端似乎无法接收服务器发送的数据。

我让客户端发起连接,我喜欢它以这种方式工作。

loop:
client --> Server;
client <-- Server;

我是 Java TCP 套接字编程的新手,有人能告诉我如何使它们正常工作吗?感谢并感谢提前提供的帮助。

TCP 客户端代码:

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

class TCPClient
{
public static void main(String argv[]) throws Exception
{
String sentence;
String modifiedSentence;
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

while(true)
{
System.out.println("Message:");
sentence = inFromUser.readLine();
if(!sentence.equals("exit"))
{
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine(); //It does not receive any data from server.
System.out.println("FROM SERVER: " + modifiedSentence);
}
else
{
outToServer.writeBytes(sentence + '\n');
clientSocket.close();
break;
}
}
}
}

TCP 服务器代码:

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

class TCPServer
{
public static void main(String argv[]) throws Exception
{
String clientSentence;
String serverSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
Socket connectionSocket;
connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
while(true)
{
clientSentence = inFromClient.readLine();
if(!clientSentence.equals("exit\n"))
{
System.out.println("Received: " + clientSentence);
System.out.println("Message:");
serverSentence = inFromUser.readLine();
outToClient.writeBytes(serverSentence); //able to send, but client is not receiving.
}
else
{
connectionSocket.close();
welcomeSocket.close();
}
}
}
}

最佳答案

尝试刷新数据:

outToClient.writeBytes(serverSentence); //able to send, but client is not receiving.
outToClient.flush();

关于java - 无法在java中的tcpserver和tcpclient之间连续发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879673/

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