package cn.itcast.webservice.socket.server;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* socket服务端
*
*/
public class SocketServer {
public static void main(String[] args) throws IOException {
//创建天气查询服务
//启动socket服务端,服务端口建议在10000以上
ServerSocket serverSocket = new ServerSocket(12345);
System.out.println("启动天气查询服务。。。");
DataInputStream dataInputStream = null;
DataOutputStream dataOutputStream = null;
while(true) {
try {
//监听客户端链接
//accept方法是阻塞方法
Socket socket = serverSocket.accept();
//输入流,使用此流接收客户端请求数据
dataInputStream = new DataInputStream(socket.getInputStream());
//客户端发送的城市名称
String cityName = dataInputStream.readUTF();
System.out.println("from client..." + cityName);
//输出流,使用此流向客户端发送数据
dataOutputStream = new DataOutputStream(socket.getOutputStream());
//查询天气信息
String result = "晴";
//将天气查询结果发送给客户端
dataOutputStream.writeUTF(result);
System.out.println("to client..." + result);
} catch (Exception e) {
e.printStackTrace();
}finally {
//资源释放
if(dataInputStream != null) {
dataInputStream.close();
}
if(dataOutputStream != null) {
dataInputStream.close();
}
//服务端一般不主动关系服务,由客户端来关闭
}
}
}
}