用Socket建立简单的C/S结构的TCP/IP服务

2008-02-23 10:08:10来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

用Socket建立简单的C/S结构的TCP/IP服务

Java、Socket、TCP/IP、网络编程

环境:Windows Server 2003

用户也可以自己写简单的TCP/IP服务

/*作为Server建立读写二进制时间服务*/
import java.io.*;
import java.net.*;
public class DaytimeServer {
ServerSocket sock;
public DaytimeServer() {
try{
sock=new ServerSocket(37);
}
catch(IOException e){
System.err.println(e);
System.exit(1);
}
}
protected void renService() {
Socket ios = null;
DataOutputStream os = null;
while(true) {
try{
ios=sock.accept();
System.err.println(ios.getInetAddress().getHostName());
os = new DataOutputStream(ios.getOutputStream());
long time = System.currentTimeMillis();
long distance=(long)(((1970-1900)*365.25)-1 .5);
long sec=distance*24*60*60;
time /= 1000;
time = sec;
os.writeInt((int)time);
os.close();
}
catch(IOException e) {
System.err.println(e);
}
}
}
public static void main(String[] args) {
new DaytimeServer().renService();
}
}

/*读写二进制时间服务,其服务端口要保持一致,与DaytimeServer配合使用*/
import java.io.*;
import java.net.*;
import java.util.*;
public class DaytimeBinary{
public static void main(String[] args){
/*服务基于1900到现在的秒数,而JAVA为1970年,需要求时间差
*1900年减1,而1969/1970加.5*/
long distance=(long)(((1970-1900)*365.25)-1 .5);
//1900-1970的秒数
long sec=distance*24*60*60;
try{
Socket sock=new Socket("127.0.0.1",37);
DataInputStream is=new DataInputStream(new BufferedInputStream
(sock.getInputStream()));
/*服务为无符号整数,而JAVA无此类型的读入,则需要转换
*先读无符号字符型,移位,合并,组装为无符号整数*/
long remote=(((long)(is.readUnsignedByte()&0xff)<<24)|
((long)(is.readUnsignedByte()&0xff)<<16)|
((long)(is.readUnsignedByte()&0xff)<<8)|
((long)(is.readUnsignedByte()&0xff)<<0));
System.out.println("远程秒为" remote);
System.out.println("1970-1900秒差为" sec);
System.out.println("其差可用此值建立JAVA基于1970年对象" (remote-sec));
System.out.println("建立ing....");
Date d=new Date((remote-sec)*1000);
System.out.println("远程时间为" d.toString());
}
catch(IOException e){
System.err.println(e);
}
}
}

上一篇: jsp mysql制作简单的留言板(5)
下一篇: jsp mysql制作简单的留言板(6)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JDK5.0的元数据编程与C 模板技术的磨合

下一篇:[引用] 为 Eclipse 插件添加日志框架