gpt4 book ai didi

Java 服务器和客户端套接字需要修复

转载 作者:行者123 更新时间:2023-12-01 15:08:57 26 4
gpt4 key购买 nike

你好,我是java套接字编程的新手,我只是想看看是否有人可以给我一些帮助。

我将发布客户端和服务器的代码,然后我将解释我的问题...

            reader = new BufferedReader(new InputStreamReader(socket.getInputStream));

while(running)
{
String line = reader.readLine();

if(line != null)
{
System.out.println(line);
stream = new PrintStream(socket.getOutputStream());
stream.println("return: " + line);
}

}

}catch(IOException e)
{
System.out.println("Socket in use or not available: " + port);
}
}

public static void main()
{
run();
}


//Client

public static String ip;
public static int port;

public static Socket socket;
public static PrintStream stream;
public static BufferedReader reader;

public static void main(String args[])
{

try
{
socket = new socket(ip, port);
stream = new PrintStream(socket.getOutputStream());
stream.println("test0");
reader = new BufferedReader(new InputStreamReader(socket.getInputStream));
String line = reader.readLine();

if(line != null)
{
System.out.println(line);
}

stream.println("test1");
line = reader.readLine();

if(line != null)
{
System.out.println(line);
}
}catch(IOException e)
{
System.out.println("could not connect to server!");
}
}

所以我的问题是,即使我摆脱循环并尝试让它发送字符串两次,它也不会发送它。除非我关闭并在客户端创建一个新套接字,否则它只会执行一次。因此,如果有人能给我解释一下我做错了什么,那就太好了,非常感谢。

最佳答案

为什么要在循环内打开外流?stream = new PrintStream(socket.getOutputStream());

将此语句放在循环之外并写入循环内的

关于Java 服务器和客户端套接字需要修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568790/

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