Java 从ip地址和端口号读取数据
我想读取在某个特定IP地址和端口号上流动的数据。我有使用java套接字编程读取数据的代码。这是我的代码Java 从ip地址和端口号读取数据,java,Java,我想读取在某个特定IP地址和端口号上流动的数据。我有使用java套接字编程读取数据的代码。这是我的代码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ServerTcpip {
public static void main(String[] args) throws IOException {
String line=null;
System.out.println("Waiting for client request");
ServerSocket ss = new ServerSocket(5566);
Socket socket = ss.accept();
System.out.println("Client connected");
DataInputStream input = new DataInputStream(socket.getInputStream());
Scanner sc = new Scanner(socket.getInputStream());
while((line = sc.nextLine() )!= null){
System.out.println(line);
}
}
}
这是我的代码。我用串口实用软件检查我的代码。所以,我的代码是服务器,软件是客户端。我在断开与客户端的连接后获取数据。连接时我无法获取数据。有人能指导我如何解决此问题吗
我想把数据发送到客户端,我用过
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeUTF("server sending data");
但它也不起作用。任何人请帮助我
谢谢。我认为是客户给您带来了问题。可能是缓冲,而您的测试数据太小,因此发送实际上不是立即完成的。数据太小,您的意思是从客户端接收数据?是的,例如
BufferedOutputStream
的默认缓冲区大小为8192字节。BufferedWriter
的默认值为8192个字符(每个字符有16位)。他们可能需要一段时间才能向套接字写入内容。您可以使用flush()
方法在某个时间点强制写入。我尝试使用flush方法,但没有获得。实际上flush()方法是将数据推送到客户端,但首先我必须从客户端读取数据,然后我必须发送响应,所以我需要先从客户端读取数据。我的套接字连接到客户端,客户端正在发送数据,但在断开客户端连接后,我获取数据,但我想在客户端连接时读取数据。在socket编程中是否有任何选项可以像轮询功能一样对客户端ping 1秒或10秒。我认为是客户端造成了问题。可能是缓冲,而您的测试数据太小,因此发送实际上不是立即完成的。数据太小,您的意思是从客户端接收数据?是的,例如BufferedOutputStream
的默认缓冲区大小为8192字节。BufferedWriter
的默认值为8192个字符(每个字符有16位)。他们可能需要一段时间才能向套接字写入内容。您可以使用flush()
方法在某个时间点强制写入。我尝试使用flush方法,但没有获得。实际上flush()方法是将数据推送到客户端,但首先我必须从客户端读取数据,然后我必须发送响应,所以我需要先从客户端读取数据。我的套接字连接到客户端,客户端正在发送数据,但在断开客户端连接后,我获取数据,但我想在客户端连接时读取数据。在套接字编程中是否有任何选项可以像轮询功能一样对客户端ping 1秒或10秒。