分享
 
 
 

JAVA实现服务器和多用户跨平台的通讯

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

浙江大学玉泉校区

梁俊清

---- 随着网络技术的发展,我们的局域网越做越大,里面的服务器客户机数量也很多。在为我们提供了诸多便利的同时,我们发现,由于服务器和客户机的操作平台不同,它们之间的通信是一个麻烦的问题,因为很多现成的通信软件或者源程序都是针对同一平台的。为了解决这个问题,我们采用Java编程,成功的实现了Linux,WINDOWS NT,WIN98跨平台的通讯。

---- 服务器程序源代码如下:

//server.java import java.io.*; import sun.net.*; class

server extends NetworkServer //定义服务器类 {DataInputStream net_input; //定义数据输出

PrintStream net_output; //定义数据输入 public static void main(String args[]) { new

server();} public server() //运行服务器功能,并把端口设为1111 { try

{startServer(1111);} catch (Exception e) { System.out.println( "Unable to start

server."); return; } System.out.println("Waiting for clients..."); } public

void serviceRequest() //定义服务应答功能 { net_input = new

DataInputStream(clientInput); net_output = System.out; String user = read_net_input();

System.out.println(user+" connected!"); while(true) { String string;

if((string=read_net_input( ))==null) break; //假如客户机输入NULL,中断服务

write_net_output(user+":"+string); } System.out.println(user+" has

disconnected!"); } String read_net_input() { try {return net_input.readLine();}

catch(IOException e) {return null;} } void write_net_output(String string) {

net_output.println(string); net_output.flush(); } } 客户机程序源代码:

//client.java import java.io.*; import sun.net.*; class client extends NetworkClient //定义客户机类

{ DataInputStream net_input; PrintStream net_output; public static void main(String

args[])//获得服务器IP地址和客户机名 { if(args.length<2) { System.out.println( "To run,type:

"); System.out.println( "java client <host> <username>"); }

System.out.println( "Connecting..."); try {new client(args[0],args[1]);} catch

(Exception e) { System.out.println( "Unable to create NetworkClient."); return;

} } public client (String host,String username) throws IOException //与服务器链接功能

{ super(host,1111); if(serverIsOpen()) { System.out.println( "Connected to

server."); net_input = new DataInputStream(System.in); net_output = serverOutput;

net_output.println(username); chat(); } else System.out.println("Error:Could not

connect to server."); } void chat() //定义信息传递函数,当输入EXIT时,中断链接

{ String string; System.out.println( "Type EXIT to exit"); while(true) {

string=read_net_input(); if(string.equalsIgnoreCase("EXIT")) break;

write_net_output(string); } System.out.println("Disconnecting...");

close_server(); System.out.println("Done!"); } String read_net_input() { try

{return net_input.readLine();} catch(IOException e) {return null;} } void

write_net_output(String string) { net_output.println(string); net_output.flush(); } void

close_server() { try {closeServer();} catch(Exception e) {System.out.println("Unable

to close server.");} } }

----

把两个源程序输入后,在任一操作平台上运行javac server.java和javac client.java,分别把它们编译成class文件。由于java的class文件的跨平台性,只要在服务器上运行相应的java解析程序执行server,在客户机上运行相应的java解析程序执行client ,就能实现客户机和服务器之间的通讯了,而且服务器答应多用户接入。以笔者学校的局域网为例,源程序在WIN98平台上用JDK 1.1.5编译成功,把server.class拷到一台LINUX服务器上,执行java server(该服务器已经安装了JAVA的RPM包),在其他WINNT平台上拷入client.class,运行jview client 192.168.100.1 NT(192.168.100.1是LINUX服务器的IP地址),就能实现跨平台通讯了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有