您现在的位置: 中国悠悠网 >> 文档中心 >> 论文中心 >> 理工类 >> 文章正文
用java制作icq EMBA论文 | 免费论文
 
用户登录时通过类datagrampacket和datagramsocket创建udp包括其本地接受端口以及发送端口,默认端口为5000和5001,通过取得的好友的ip地址来向好友发送消息(send(datagrampacket)和接受消息(receive(datagrampacket))。当用户通过udp收到消息后,可以通过datagrampacket的方法inetaddress getaddress()得到对方的ip地址,通过对好友列表比较以判断是谁并提示用户收到某某的消息,然后用户选择该用户查看消息,如果好友列表没有该人就显示收到陌生人的消息。用户可以按陌生人按钮查看消息。

用户注册。当服务器收到用户的注册请求,便开始接受客户传第的信息,诸如客户的呢称啦,性别,籍贯,头像,个人资料等,接受完毕后,便通过jdbcodbc与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其jicq号码,并在数据库中注册用户的ip地址,然后更新其status为1即用户在线。客户收到服务器返回的信息后,便打开主程序窗口,并同时开始创建udp以便在用户之间建立联系。

******部分程序如下:

void jbutton1_mouseclicked(mouseevent e) { try{ socket socket=new socket(inetaddress.getbyname(sername),serverport);//连接服务器 bufferedreader in=new bufferedreader(new inputstreamreader(socket.getinputstream())); printwriter out=new printwriter(new bufferedwriter( new outputstreamwriter(socket.getoutputstream())),true); out.println("new");//告诉服务器我要注册 out.println(nickname.gettext().trim());//告诉服务器我的呢称,密码,email,资料 out.println(password.getpassword());//以及头像号等信息 out.println(email.gettext().trim()); out.println(info.gettext().trim()); out.println(place.getselecteditem()); out.println(headpic.getselectedindex());//head picindex int no; no=integer.parseint(in.readline()); //system.out.print(no); string str=" "; str=in.readline().trim();//从服务器取得状态 if(str.equals("false")) joptionpane.showmessagedialog(this,"对不起,出错了:- (","ok",joptionpane.information_message);//失败就警告 else{//成功就打开主程序 joptionpane.showmessagedialog(this,"your javaicq#is"+no,"ok",joptionpane.information_message); this.dispose(); mainwin f2=new mainwin(no,sername,serverport); f2.setvisible(true);} //system.out.println("\n"); //}while(!str.equals("ok")); // socket.close(); }catch(ioexception e1){} } }
用户登录。在客户端,用户输入其jicq号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过jdbcodbc读取数据库,然后与用户输入的信息比较,如果相同就向客户返回成功消息并将其status字段设为1表示上线了以及注册其ip地址,否则返回错误,如果客户收到成功信息就打开主窗口,否则提示出错。如果成功,便打开主程序窗口,并同时开始创建udp以便在用户之间建立联系。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的friend表,得到好友的号码后,再在icq表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,比如头像,呢称。并且建立几个矢量(vector)用以存储好友的呢称,jicq号码,头像编号,ip地址等信息。

部分程序如下:(程序流程图与注册差不多,略)

void login_mouseclicked(mouseevent e) { try{socket socket=new socket(inetaddress.getbyname(server),serport);//与服务器连接 bufferedreader in=new bufferedreader(new inputstreamreader(socket.getinputstream()));//创建//输入流 printwriter out=new printwriter(new bufferedwriter( new outputstreamwriter(socket.getoutputstream())),true); //创建输出流 out.println("login");//告诉服务器我要登录 out.println(jicq.gettext()); //告诉服务器我的号码 out.println(password.getpassword()); //告诉服务器我的密码 string str=" "; //do{ str=in.readline().trim();//取得服务器发过来的消息 if(str.equal

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页