Created
December 7, 2014 08:36
-
-
Save takei-shg/f92f3673afeddebcf38d to your computer and use it in GitHub Desktop.
java echo server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.OutputStream; | |
import java.net.ServerSocket; | |
import java.net.Socket; | |
import java.util.concurrent.Callable; | |
import java.util.concurrent.ExecutorService; | |
import java.util.concurrent.Executors; | |
/** | |
* Created by nanika on 2014/12/07. | |
*/ | |
public class Server { | |
int port = 9999; | |
Thread runThread = new Thread(); | |
public void simpleStart() throws IOException { | |
ServerSocket serverSocket = new ServerSocket(port); | |
serverSocket.setReuseAddress(true); | |
Socket clientSocket = serverSocket.accept(); | |
System.out.println("server accepted"); | |
InputStream in = clientSocket.getInputStream(); | |
OutputStream out = clientSocket.getOutputStream(); | |
int receiveSize = 0; | |
byte[] bytebuf = new byte[32]; | |
while ((receiveSize = in.read(bytebuf)) != -1) { | |
out.write(bytebuf, 0, receiveSize); | |
} | |
clientSocket.close(); | |
System.out.println("server closed"); | |
} | |
public void loop() throws IOException { | |
ServerSocket serverSocket = new ServerSocket(port); | |
serverSocket.setReuseAddress(true); | |
for (;;) { | |
Socket clientSocket = serverSocket.accept(); | |
System.out.println("server accepted"); | |
InputStream in = clientSocket.getInputStream(); | |
OutputStream out = clientSocket.getOutputStream(); | |
int receiveSize = 0; | |
byte[] bytebuf = new byte[32]; | |
while ((receiveSize = in.read(bytebuf)) != -1) { | |
out.write(bytebuf, 0, receiveSize); | |
} | |
clientSocket.close(); | |
System.out.println("server closed"); | |
} | |
} | |
int threadNum = 2; | |
ExecutorService executor = Executors.newFixedThreadPool(threadNum); | |
public void multiThread() throws IOException { | |
ServerSocket serverSocket = new ServerSocket(port); | |
serverSocket.setReuseAddress(true); | |
for (;;) { | |
final Socket clientSocket = serverSocket.accept(); | |
System.out.println("server accepted"); | |
Callable task = new Callable() { | |
@Override | |
public Object call() throws Exception { | |
InputStream in = clientSocket.getInputStream(); | |
OutputStream out = clientSocket.getOutputStream(); | |
int receiveSize = 0; | |
byte[] bytebuf = new byte[32]; | |
while ((receiveSize = in.read(bytebuf)) != -1) { | |
out.write(bytebuf, 0, receiveSize); | |
} | |
clientSocket.close(); | |
System.out.println("server closed"); | |
return null; | |
} | |
}; | |
executor.submit(task); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment