Java:读套接字
客户 服务器Java:读套接字,java,sockets,client-server,Java,Sockets,Client Server,客户 服务器 public static DataOutputStream toServer = null; Socket SMTPSocket; SMTPSocket = new Socket("localhost", 222); toServer = new DataOutputStream(SMTPSocket.getOutputStream()); inl = new BufferedReader(new InputStreamReader(System.in));
public static DataOutputStream toServer = null;
Socket SMTPSocket;
SMTPSocket = new Socket("localhost", 222);
toServer = new DataOutputStream(SMTPSocket.getOutputStream());
inl = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Which file do you want to stream?");
String requested_file= inl.readLine(); //read from keyboard
toServer.writeBytes(requested_file);//send to server the keyword
toServer.flush();
这是一个简单的收发程序。正如我看到的,我的客户机发送数据,但服务器无法读取它们。请帮忙,
有什么问题吗?能否显示在每一侧创建套接字的部分?另外,您是否尝试在
写入字节(…)
之后flush()
?(请参阅此处的更多内容)@MoeNeuron我将套接字部分添加到我的代码中我尝试在writeBytes()之后flush()
,但没有看到任何更改。。我很困惑这只是一段代码片段,不是可运行(甚至是可编译)的代码。您的写入和读取代码不兼容。一般来说,I/O类是成对的,一个用于阅读,一个用于写作。这些方法也可以配对,因此DataOutputStream.writeUTF
应该与DataInputStream.readUTF
配对。您可以决定要哪一对,但是DataOutputStream.writeUTF
和DataInputStream.readUTF
应该至少适用于您提供的小片段。您可以在每一侧显示创建套接字的部分吗?另外,您是否尝试过在writeBytes(…)
之后使用flush()
?(请参阅此处的更多内容)@MoeNeuron我将套接字部分添加到我的代码中我尝试在writeBytes()之后flush()
,但没有看到任何更改。。我很困惑这只是一段代码片段,不是可运行(甚至是可编译)的代码。您的写入和读取代码不兼容。一般来说,I/O类是成对的,一个用于阅读,一个用于写作。这些方法也可以配对,因此DataOutputStream.writeUTF
应该与DataInputStream.readUTF
配对。您可以决定需要哪一对,但是DataOutputStream.writeUTF
和DataInputStream.readUTF
至少可以用于您提供的小片段。
ServerSocket ssock = new ServerSocket(222);
Socket connsock = null;
connsock = ssock.accept();
fromClient = new BufferedReader(new InputStreamReader(connsock.getInputStream()));
String requested_file = fromClient.readLine();// read keyword from client
System.out.println(requested_file);