[英]trouble calling methods in main? simple Client/server
注意: 我的第一個StackOverFlow POST! WHOOOP!
大家好,所以我建立了一個簡單的客戶端服務器程序,該程序只接收一個字符串然后返回它,但是由於某種原因,我無法讓我的主體正確地調用這些方法,而且我不明白為什么它不起作用。 有人可以看看我是否想念/做錯了什么。 我知道我建立網絡的邏輯是扎實的,但電話不是。 我認為現在該換新鮮的眼睛了,對您有幫助! 謝謝。
主要:
public class FileRetrieve_Easy_main
{
public static void main(String[] args)
{
new Thread(new SimpleServer()).start();
new Thread(new SimpleClient()).start();
}
}
客戶:
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client
{
public static class SimpleClient implements Runnable
{
@Override
public void run()
{
Socket socket = null;
try
{
Thread.sleep(3000);
socket = new Socket("localhost", 3333);
PrintWriter outWriter = new PrintWriter(socket.getOutputStream(),true);
outWriter.println("Hello Mr. Server!");
}
catch (InterruptedException e)
{
e.printStackTrace();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
}
finally
{
try
{
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}// end run
}//end simple client
}
服務器:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server
{
public static class SimpleServer implements Runnable
{
@Override
public void run()
{
ServerSocket serverSocket = null;
while (true)
{
try
{
serverSocket = new ServerSocket(3333);
Socket clientSocket = serverSocket.accept();
BufferedReader inputReader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
System.out.println("Client said :"+inputReader.readLine());
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
serverSocket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}//end while
}// end run
}//end simple server
}//end class
您的服務器Runnable的名稱為Server.SimpleServer。 客戶端Runnable的名稱為Client.SimpleClient。 您使它們成為嵌套類,您可以在這里閱讀: https : //docs.oracle.com/javase/tutorial/java/javaOO/nested.html
是否所有類都在默認軟件包中?
如果您這樣做:
public class FileRetrieve_Easy_main
{
public static void main(String[] args)
{
new Thread(new Server.SimpleServer()).start();
new Thread(new Client.SimpleClient()).start();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.