gpt4 book ai didi

java套接字输入流,PrintWriter不工作

转载 作者:行者123 更新时间:2023-12-02 10:31:10 29 4
gpt4 key购买 nike

我尝试制作一个服务器和客户端来相互发送简单的消息,但效果不佳。

当我调试每一端时,从服务器向客户端发送消息后,客户端将“hi”放入PrintWriter中,然后客户端完成,但服务器无法读取“hi”,尽管我使用了 readline()。为什么服务器无法读取“hi”?

public class Server1 {
static ServerSocket ss;
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
ss=new ServerSocket(4432);
while(true)
{
Socket s=ss.accept();
System.out.println("accept for client");
function f=new function(s,ss);
f.run();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

class function extends Thread{
Socket s;
ServerSocket ss;
function(Socket s,ServerSocket ss)
{
this.s=s;
this.ss=ss;
}
@Override
public void run() {
try {

PrintWriter pw=new PrintWriter(s.getOutputStream());
InputStreamReader SR=new InputStreamReader(s.getInputStream());//client가 server로부터 메세지 읽어올 stream 추가
BufferedReader reader=new BufferedReader(SR);

pw.println("hello im server");
pw.flush();

String MFC=reader.readLine();
String bb=MFC+" correct!";
System.out.println(bb);

pw.close();


} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

上面的代码是服务器端

public class Client1 {
PrintWriter pw;
InputStreamReader cr;
static Socket s;
public static void main(String[] args) {

// TODO Auto-generated method stub
Client1 c=new Client1();
c.sck();
}
public void sck() {
try {

s=new Socket("127.0.0.1",4432);

cr=new InputStreamReader(s.getInputStream());
pw=new PrintWriter(s.getOutputStream());
BufferedReader bf=new BufferedReader(cr);


String get=bf.readLine();
System.out.println(get);

String hi="hi ";
pw.print(hi);
pw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

上面的代码是客户端

我想要的结果是

[server]
accept for client
hi correct! ->this is not working

[Client]
hello im server

最佳答案

您的服务器需要一个末尾带有换行符的字符串,因此您需要替换pw.print(hi); 在您的客户端中使用 pw.println(hi);

关于java套接字输入流,PrintWriter不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53605850/

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