【发布时间】:2021-01-14 13:53:46
【问题描述】:
我有一个程序从服务器接收数据并打印数据。如何将程序变成一个程序,在接收到数据后发送回其他数据?我尝试将 datainputstream 和 dataoutputstream 添加到这两个程序,但它没有工作,它没有给出错误并且它停止工作,所以我把它删除了。服务器:
package testSocket;
import java.net.*;
import java.io.*;
import javax.swing.JFrame;
public class server {
public static void main(String[] args) throws IOException {
JFrame jframe = new JFrame("TEST SERVER");
jframe.setVisible(true);
jframe.setSize(800, 600);
try (ServerSocket sws = new ServerSocket(13481)) {
Socket socket = sws.accept();
OutputStream outs = socket.getOutputStream();
DataOutputStream douts = new DataOutputStream(outs);
douts.writeUTF("Hello.");
douts.close();
outs.close();
} catch (Exception e) {
System.out.println("Exception : " + e);
}
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
客户:
package testSocket;
import java.io.*;
import java.net.*;
public class client {
public static void main(String[] args) throws IOException {
Socket tcs = new Socket("localhost", 13481);
InputStream iss = tcs.getInputStream();
DataInputStream dis = new DataInputStream(iss);
String str = new String(dis.readUTF());
System.out.println("test " + str);
dis.close();
iss.close();
tcs.close();
}
}
我正在尝试制作一个程序,当我从服务器发送数据时,它会将指定的数据发回给我 您能对此提出一些建议吗?
【问题讨论】:
-
您需要尝试使用您的套接字资源。还要更具体。究竟是什么没有按预期工作?
-
我试过:是添加 datainputstream 和 dataoutputstream 到两者,这样他们就可以接收和发送数据,但程序没有工作。也许我把它们添加到程序中时出错了,我不知道.我想做的是类似于上面的代码,在上面的代码中,客户端从服务器接收“hello”字符串变量。我只是想添加代码客户端发送“hi”值到服务器收到“hello”值后。 @RandomCoder_01
-
您必须对流进行线程化以实现全双工(发送和接收),因为流会阻塞并等待数据输入/输出。
-
那么我需要在从客户端发送到服务器后将其发送回客户端吗?这样做时,我想通过服务器界面查看信息。
标签: java sockets serversocket data-transfer