package com.lingsheng.AppServices.connection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.SQLException;
import java.util.logging.Logger;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
/**
* author AppServer
* Scoket服务端
* @param 2016/08/26
*/
public class AppServer {
static Logger logger = Logger.getLogger(AppServer.class.getName());
public AppServer() throws SQLException {
try {
logger.info ("服务启动");
ServerSocket serverSocket=new ServerSocket(25685); //1.建立一个服务器Socket(ServerSocket)绑定指定端口
while(true){
Socket socket=serverSocket.accept(); //2.使用accept()方法阻止等待监听,获得新连接
String s= socket.getInetAddress().getHostAddress();//获取客户端IP
logger.info ("客户端IP"+s);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
StringBuilder sb = new StringBuilder();
String temp;
int index;
while ((temp=br.readLine()) != null) {
if ((index = temp.indexOf("jfd")) != -1) {//遇到eof时就结束接收
sb.append(temp.substring(0, index));
break;
}
sb.append(temp);
}
System.out.println("from client: " + sb);
JSONObject jsonObject =JSONObject.fromObject(sb.toString());
int SessionType=jsonObject.getInt("SessionType");//只解析通讯标识
JSONObject obj=new JSONObject();
obj.put("SessionType",SessionType);//会话序号
OutputStream outputStream = socket.getOutputStream();
outputStream.write(sb.toString().getBytes("utf-8"));
System.out.println(sb.toString().getBytes("utf-8"));
outputStream.flush();
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*private static void send(Socket socket, String sb){
OutputStream outputStream;
try {
outputStream = socket.getOutputStream();
outputStream.write(sb.toString().getBytes("utf-8"));
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}//发送
}*/
public static void main(String[] args) throws SQLException{
try{
new AppServer();
} catch (JSONException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.SQLException;
import java.util.logging.Logger;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
/**
* author AppServer
* Scoket服务端
* @param 2016/08/26
*/
public class AppServer {
static Logger logger = Logger.getLogger(AppServer.class.getName());
public AppServer() throws SQLException {
try {
logger.info ("服务启动");
ServerSocket serverSocket=new ServerSocket(25685); //1.建立一个服务器Socket(ServerSocket)绑定指定端口
while(true){
Socket socket=serverSocket.accept(); //2.使用accept()方法阻止等待监听,获得新连接
String s= socket.getInetAddress().getHostAddress();//获取客户端IP
logger.info ("客户端IP"+s);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
StringBuilder sb = new StringBuilder();
String temp;
int index;
while ((temp=br.readLine()) != null) {
if ((index = temp.indexOf("jfd")) != -1) {//遇到eof时就结束接收
sb.append(temp.substring(0, index));
break;
}
sb.append(temp);
}
System.out.println("from client: " + sb);
JSONObject jsonObject =JSONObject.fromObject(sb.toString());
int SessionType=jsonObject.getInt("SessionType");//只解析通讯标识
JSONObject obj=new JSONObject();
obj.put("SessionType",SessionType);//会话序号
OutputStream outputStream = socket.getOutputStream();
outputStream.write(sb.toString().getBytes("utf-8"));
System.out.println(sb.toString().getBytes("utf-8"));
outputStream.flush();
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*private static void send(Socket socket, String sb){
OutputStream outputStream;
try {
outputStream = socket.getOutputStream();
outputStream.write(sb.toString().getBytes("utf-8"));
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}//发送
}*/
public static void main(String[] args) throws SQLException{
try{
new AppServer();
} catch (JSONException e) {
e.printStackTrace();
}
}
}