📄 timeserver.java
字号:
import java.net.*;
import java.io.*;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Calendar;
public class TimeServer {
ServerSocket skt;
public TimeServer(int port) {
try{
skt = new ServerSocket(port);
while(true){
//有新的连接请求到达时,accept返回一个新的socket.
Socket con = skt.accept();
//可以为每个客户的socket产生一个新的线程,本例中同时有多个连接请求到达,后面的必须排队。
new RealService(con);
}
}
catch(Exception e){
System.err.println(e.getMessage());
}
}
public static void main(String argc[]){
//自己定义的服务不要使用熟知端口
TimeServer ts = new TimeServer(2000);
}
}
class RealService{
RealService(Socket s) throws IOException{
InputStream in = s.getInputStream();
byte buf[] = new byte[100];
in.read(buf);
//String.trim()将后面的空格删除
String command = new String(buf).trim();
OutputStream os = s.getOutputStream();
//java字符串比较的方法就是equals
//时间
if(command.equals(new String("time"))){
Date d = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(d);
String out = calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE) + ":" + calendar.get(Calendar.SECOND);
//将字符串显示地转化为byte[]
os.write(out.getBytes());
}
//日期
else if(command.equals(new String("date")))
{
Date d = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(d);
String out = calendar.get(Calendar.YEAR) + ":" + calendar.get(Calendar.MONTH+1) + ":" + calendar.get(Calendar.DAY_OF_MONTH);
//将字符串显示地转化为byte[]
os.write(out.getBytes());
}
else{
os.write(new String("Invalid command").getBytes());
System.err.println("Unknown command : " + command);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -