你好,我是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