Java で単純な HTTP Web サーバーを作成しようとしています。私はこれを赤ちゃんのステップで取っているだけなので、非常に単純化されています. クライアントから単純な入力を読み取り、両方が接続されているときにサーバーから何かを出力できるようにしようとしています。
ウェブサイトのチュートリアルを検索した後、これは私がこれまでに行ったことです:
public class Server
{
public static void main(String[] args) throws Exception
{
boolean listening = true;
ServerSocket server = null;
int port = 2222;
try
{
System.out.println("Server binding to port " + port);
server = new ServerSocket(port);
}
catch(Exception e)
{
System.out.println("Error: " + e);
System.exit(1);
}
System.out.println("Server successfully binded to port " + port);
while(listening)
{
System.out.println("Attempting to connect to client");
Socket client = server.accept();
System.out.println("Successfully connected to client");
new ServerThread(client).start() ;
}
server.close();
}
}
public class ServerThread extends Thread
{
private Socket socket = null ;
public ServerThread(Socket s)
{
this.socket = s ;
}
public void run()
{
InputStream in = socket.getInputStream() ;
OutputStream out = socket.getOutputStream() ;
byte [] message, reply;
while((in.read(message))
{
out.write(reply) ;
}
in.close() ;
out.close() ;
socket.close() ;
}
}
クライアントへの接続を試みた後、バインドしてからハングします。これは、ServerThread の while ループで何をしているのか、メッセージ変数と応答変数で何をしているのかよくわからないためです >_< Java をやるのは久しぶりなので、気楽にやってください!