泰塔科技网站建设,南宁做网站公司,网站做的好赚钱吗,技术开发合同模板打开Server Socket,创建一个服务器型套接字和一个普通套接字#xff0c;服务器型套接字在指定端口为客户端请求的Socket 服务#xff1b;? 使用ServerSocket类的accept()方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字#xff1b;? 为该普通套接字创建输入…打开Server Socket,创建一个服务器型套接字和一个普通套接字服务器型套接字在指定端口为客户端请求的Socket 服务? 使用ServerSocket类的accept()方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字? 为该普通套接字创建输入和输出流? 从输入和输出流中读入或写入字节流进行相应的处理并将结果返回给客户端? 在客户端和服务器工作结束后关闭所有的对象,如服务器型的套接字,普通套接字,输入和输出流。正是由于Java系统具有基于Socket的灵活通信机制因而其应用程序能自由地打开和访问网络上的对象就象在本地文件系统中一样。(2) Applet之间的通信Applet之间的通信使用Applet Context类的getApplet()方法。只要在程序中加入 Applet oneappletgetAppletContext().getApplet(“first”);便可使用name为first的Applet中的方法了。在该课题中大量使用了该种通信方法因为专门同服务器端通信的 Applet中包含接收信息方法和发送信息方法所有客户端的Applet都要使用负责通信的Applet中的方法所以客户端的Applet同负责通信的Applet必须进行通信。 copyright paper51.com//服务器端程序S.java 负责与客户端通信这部分的代码 如下http://www.paper51.comimport java.io.*;import java.net.*;import java.lang.*;import T2; 内容来自论文无忧网 www.paper51.comclass ThreadEchoHandler extends Thread //创建线程{T2 theT2new T2(); paper51.comSocket incoming;int counter; 内容来自www.paper51.comThreadEchoHandler(Socket i,int c){ incomingi;counterc; } copyright paper51.compublic void run(){try{DataInputStream innew DataInputStream(incoming.getInputStream());DataOutputStream outnew DataOutputStream(incoming.getOutputStream());System.out.println (hello); boolean donefalse; http://www.paper51.comwhile(!done){ String aa;String strin.readUTF(); //从客户端得到字符串内容来自论文无忧网 www.paper51.com//在此加入各自的服务程序 copyright paper51.comSystem.out.println (str);内容来自www.paper51.comtheT2.pass(str); //解码theT2.tongji(); //修改监控库中的信息 copyright paper51.comaatheT2.guan(); //操纵数据库System.out.println (string z is:aa); copyright paper51.comif(aa.compareTo(null)!0 ) //若是查询数据库返回查询后的结果{ //若不是查询数据库不向客户端输出信息 out.writeUTF(aa);out.flush(); }}//while内容来自www.paper51.comincoming.close(); //线程关闭内容来自论文无忧网 www.paper51.com}//try内容来自论文无忧网 www.paper51.comcatch(IOException e){System.out.println(e);}}//end run}paper51.com//----------------------------------------class S{ public static void main(String[] args){ int i1;try{ServerSocket snew ServerSocket(1111);for(;;){Socket incomings.accept();System.out.println(connect: i);new ThreadEchoHandler(incoming,i).start();i;}}catch(Exception e){ System.out.println(e); }} } http://www.paper51.comcopyright paper51.com//客户端通信小应用程序 Echo.javacopyright paper51.comimport java.io.*;import java.net.*;import java.awt.*;import java.applet.*; 内容来自论文无忧网 www.paper51.compublic class Echo extends Applet{TextArea ta;Socket echoSocket;DataOutputStream os;DataInputStream is;String Line;内容来自论文无忧网 www.paper51.compublic void init() { setBackground(Color.white);tanew TextArea(5,80);ta.setEditable(false);add(ta); try{echoSocketnew Socket(10.102.4.41,1111);} //与服务器建立连接catch(IOException e){System.out.println(error);} copyright paper51.com} 内容来自www.paper51.com//本系统还做成了系统托盘比较时尚的小功能 http://www.paper51.comhttp://www.paper51.com融合了JDK1。6的全新功能paper51.compublic void st(String stri) //发送字符串的方法{try{ DataOutputStream osnew DataOutputStream(echoSocket.getOutputStream());DataInputStream isnew DataInputStream(echoSocket.getInputStream()); os.writeUTF( stri ); //向服务器输送stringos.flush();}catch(IOException e){System.out.println( error:e); } } http://www.paper51.compublic String st1() //接收字符串的方法{String Line;try{ DataOutputStream osnew DataOutputStream(echoSocket.getOutputStream());DataInputStream isnew DataInputStream(echoSocket.getInputStream()); Lineis.readUTF(); //从服务器读来的信息ta.appendText(Line); //在文本域中输出信息}catch(IOException e){System.out.println( error:e); }return Line;http://www.paper51.com以上代码全部实现下面的功能模块copyright paper51.com(1) }欢迎界面 copyright paper51.com(2) 用户登陆界面paper51.com(3) 主功能界面paper51.com(4) 创建界面copyright paper51.com(5) 查询界面(单一查询和全部查询)内容来自论文无忧网 www.paper51.com(6) 添加信息界面 http://www.paper51.com(7) 用户信息修改界面paper51.com(8) 帮助界面} http://www.paper51.com程序调试心得1) 在建立Socket连接时两端的端口号必须设为一致否则建立不了连接。服务器端必须有主机IP地址或主机名参数。2) 连接建立好之后应确定输入和输出流。起初程序中用的是DataInputStream和PrintStream结果只能传输英文传输中文时产生乱码将PrintStream改为DataOutputStream使用readUTF()和writeUTF()方法后中文传输问题得到解决。3) 如果一个使用某端口的程序没有关闭另一个程序就不能使用这个端口。4) 开始进行通信的程序均为 Application因不符合客户机/服务器机制应将客户端的Application改为Applet。其转化的主要步骤如下? 创建一个包含APPLET标签的HTML文件? 去掉应用程序中的main()方法? 类名应继承Applet类而不是Frame类并在程序开头加入import java.applet.*;语句? 用init()方法代替Application程序中的构造方法当浏览器创建Applet类对象的时候它自动执行init()方法? 如Application中缺省使用了BorderLayout布局管理器应在Applet的init()方法中重新设定? 如果Application中有setTitle()方法必须将其去掉如Application中使用了菜单在Applet中用按钮来替换。5) 懂得了在一程序中如何引用自定义的类中的方法和变量在程序开头加入import 类名在程序中加入 类名实例new 类名(); 然后使用 实例.方法()实例.变量即可paper51.com