你好,我是java socket编程的新手,我只是想看看有人能给我一些帮助。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!");
}
}
所以我的问题是,即使我摆脱循环,并尽量使其发送字符串两次它不会发送它。它只会做一次,除非我关闭并在客户端创建一个新的套接字。所以,如果有人能给我一个解释我做错的事情,那会很棒,并且非常感谢你。
找到它,如果的readLine()的'结果'为空则必须退出循环并关闭插座。否则,你将永远炒到CPU。 – EJP