欢迎来到天天文库
浏览记录
ID:35606217
大小:127.00 KB
页数:7页
时间:2019-03-31
《Java聊天程序的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《Java程序设计》Java聊天程序的设计班级姓名学号指导教师日期:2012年11月第7页共7页一、课程目的根据学过的相关内容,主要是利用Java的流、多线程和网络的功能,并根据需要结合数据库,编写一个简单的网络通讯程序,有连接(Socket)的通讯。来加深对JAVA中各个知识点的理解。二、实验内容及过程:①本通讯设备运用的是mysql,java支持的数据库,建立数据库,数据库名为mychat,数据库中共有两个表tablet_user、chatrecord。建表的sql语句为:其中编号字段为自动增加。createdatabasemychat;usemychat;cre
2、atetablet_user(idintegernotnullauto_increment,ipvarchar(30),usernamevarchar(30),primarykey(id));createtablechatrecord(idintegernotnullauto_increment,useridvarchar(30),contentvarchar(300),primarykey(id));②服务器端程序如下:服务器与客户间通过套接口(Socket)连接。在java中通过套接口比较简单,JavaAPI为处理套接口的通信提供了一个类java.net.Sock
3、et使得编写网络应用程序比较简单,服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并建立一个ServerSocket对象来监听来自客户端的连接请求,默认端口为8765,主要的代码如下:publicstaticfinalintPORT=8765;publicServerThread(){clients=newVector();messages=newVector();try{serverSocket=newServerSocket(PORT);}catch(IOExceptione){}try{myIpadd
4、ress=InetAddress.getLocalHost();}catch(UnknownHostExceptione){}ip=String.valueOf(myIpaddress);Server.jTextArea1.append("服务器地址"+ip+":"+String.valueOf(serverSocket.getLocalPort())+"");broadCase=newBroadCase(this);broadCase.start();}第7页共7页publicvoidrun(){while(true){try{Socketsocket=serv
5、erSocket.accept();ClientThreadclientThread=newClientThread(socket,this);clientThread.start();if(socket!=null){synchronized(clients){clients.addElement(clientThread);}}}catch(IOExceptione){System.out.println("发生异常"+e);System.out.println("建立客户端联机失败");System.exit(2);}}}③客户端程序如下:客户通过Socket(
6、InetAddress.port)建立与服务器的连接。服务器与客户通过构造通过BufferedReader,PrintWriwer来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦受到客户端的连接请求,服务器返回一个新建的Socket对象。客户端然后向服务器发送消息。比如登录,服务器收到客户端的请求后,针对不同的消息进行处理请求,在客户端中输入用户名,进入聊天。主要的代码如下:publicstaticvoidmain(String[]args){Clientclient=newClient();client.setDefaultCloseOperation
7、(JFrame.EXIT_ON_CLOSE);}publicvoidrun(){while(true){try{chat_in=in.readUTF();DbServicedbs=newDbService();dbs.saveMessage(jTextField1.getText(),chat_in);jTextArea1.append(chat_in);}catch(IOExceptione){System.out.println("intheclient");e.printStackTrace();}}}④保存聊天记录,主要是便于查看每个人的聊天
此文档下载收益归作者所有