Java 从面向连接(TCP)的客户端/服务器的服务器套接字读取客户端套接字上的字节包?
我正在创建面向连接的服务器/客户机(TCP)套接字。我已经创建了整个服务器套接字,我已经成功地在服务器套接字上编写了数据包,我也创建了客户机套接字,但我无法读取数据包,所以请告诉我如何读取数据包(代码或示例)在客户端套接字上读取数据包,并清楚地告诉我是否可以在客户端套接字上读取数据包如果否,那么应该使用什么来代替客户端和服务器套接字您通常不会一次读取数据包-您从Java 从面向连接(TCP)的客户端/服务器的服务器套接字读取客户端套接字上的字节包?,java,sockets,tcp,Java,Sockets,Tcp,我正在创建面向连接的服务器/客户机(TCP)套接字。我已经创建了整个服务器套接字,我已经成功地在服务器套接字上编写了数据包,我也创建了客户机套接字,但我无法读取数据包,所以请告诉我如何读取数据包(代码或示例)在客户端套接字上读取数据包,并清楚地告诉我是否可以在客户端套接字上读取数据包如果否,那么应该使用什么来代替客户端和服务器套接字您通常不会一次读取数据包-您从socket.getInputStream()返回的输入流中读取数据包。几乎可以肯定,您应该将连接视为一个流,而不是试图处理单个数据包
socket.getInputStream()
返回的输入流
中读取数据包。几乎可以肯定,您应该将连接视为一个流,而不是试图处理单个数据包
如果您仍然遇到问题,如果您可以发布一些代码来显示如何连接套接字等,这将非常有帮助。我必须在大学的网络课程中实现这样的功能 这是一段摘自 TCPServer.java
import java.io.*;
import java.net.*;
class TCPServer
{
public static void main(String argv[]) throws Exception
{
String clientSentence;
String capitalizedSentence;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
System.out.println("Received: " + clientSentence);
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
}
}
TCPClient.java
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()));
sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);
clientSocket.close();
}
}
希望这将足以找出你做错了什么。祝你好运 请添加您的代码。服务器或客户端数据包读取没有区别。打开套接字,获取流并从流中读取或写入。