1、服务端编程示例(SocketServer.java)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
private final static Logger logger = LoggerFactory.getLogger(SocketServer.class.getName());
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
if(args == null ){
logger.info("[error] Server args is null");
System.exit(0);
return ;
}
String portVal = args[0];
logger.info(" Server Start Port["+portVal+"]!!!!");
SocketServer server = new SocketServer();
server.doListen(Integer.valueOf(portVal));
}
public void doListen(int port) {
ServerSocket server;
try {
server = new ServerSocket(port);
while (true) {
Socket client = server.accept();
new Thread(new SSocket(client)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
class SSocket implements Runnable {
private Socket client;
public SSocket(Socket client) {
this.client = client;
}
public void run() {
DataInputStream input=null;
DataOutputStream output=null;
try {
input = new DataInputStream(client.getInputStream());
output = new DataOutputStream(client.getOutputStream());
String read = input.readUTF();
output.writeUTF("Recive: One" + read + " \r\n");
logger.info("Recive: " + read);
read = input.readUTF();
output.writeUTF("Recive Second: " + read + " \r\n");
logger.info("Recive: " + read);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
input.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
if(client!=null){
try{
client.close();
}catch (Exception ee){
ee.printStackTrace();
}
}
}
}
}
}