Skip to content

Instantly share code, notes, and snippets.

@NeatMonster
Created July 3, 2014 17:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NeatMonster/29f2d3832cde1341819d to your computer and use it in GitHub Desktop.
Save NeatMonster/29f2d3832cde1341819d to your computer and use it in GitHub Desktop.
package fr.neatmonster.sockets;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ClientThread extends Thread {
private final Socket socket;
public ClientThread(final Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
final BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(input.readLine());
final PrintWriter output = new PrintWriter(socket.getOutputStream());
output.write("HTTP/1.1 200 OK\r\nContent-Language:en\r\nContent-Length:12\r\nContent-Type:text/plain; charset=utf-8\r\n\r\nHello world.");
output.flush();
output.close();
input.close();
} catch (final Exception e) {
e.printStackTrace();
}
}
}
name: Socket
version: 1.0
author: NeatMonster
main: fr.neatmonster.sockets.Sockets
package fr.neatmonster.sockets;
import java.io.IOException;
import java.net.ServerSocket;
public class ServerThread extends Thread {
private ServerSocket serverSocket = null;
@Override
public void run() {
try {
serverSocket = new ServerSocket(2014);
while (!serverSocket.isClosed())
new ClientThread(serverSocket.accept()).start();
} catch (final IOException e) {
if (!e.getMessage().toLowerCase().contains("socket closed"))
e.printStackTrace();
}
}
public void stopThread() throws IOException {
if (serverSocket != null)
serverSocket.close();
}
}
package fr.neatmonster.sockets;
import org.bukkit.plugin.java.JavaPlugin;
public class Sockets extends JavaPlugin {
private ServerThread serverThread;
@Override
public void onDisable() {
try {
if (serverThread != null)
serverThread.stopThread();
} catch (final Exception e) {
e.printStackTrace();
}
}
@Override
public void onEnable() {
serverThread = new ServerThread();
serverThread.start();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment