達(dá)內(nèi)生產(chǎn)實(shí)習(xí)報(bào)告qq聊天軟件_第1頁
達(dá)內(nèi)生產(chǎn)實(shí)習(xí)報(bào)告qq聊天軟件_第2頁
達(dá)內(nèi)生產(chǎn)實(shí)習(xí)報(bào)告qq聊天軟件_第3頁
達(dá)內(nèi)生產(chǎn)實(shí)習(xí)報(bào)告qq聊天軟件_第4頁
達(dá)內(nèi)生產(chǎn)實(shí)習(xí)報(bào)告qq聊天軟件_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、達(dá)內(nèi)生產(chǎn)實(shí)習(xí)報(bào)告目 錄1前言31.1 實(shí)習(xí)背景 312 實(shí)習(xí)環(huán)境2實(shí)習(xí)內(nèi)容42. 1 實(shí)習(xí)過程423 主要成果 113總結(jié)123.1實(shí)習(xí)體會 123.2 其它意見 13學(xué)生實(shí)習(xí)鑒定141前言1.1 實(shí)習(xí)背景 由于學(xué)校課程要求加上專業(yè)限制,學(xué)校根據(jù)教學(xué)要求。組織我們于2010年7月2號至2010年7月4號參加生產(chǎn)實(shí)習(xí)。實(shí)習(xí)單位是達(dá)內(nèi)科技有限公司。1.2 實(shí)習(xí)環(huán)境 在linux系統(tǒng)下面,使用EJAVALIPSE開發(fā)工具,使用java語言進(jìn)行支持跨平臺的即時通訊軟件研發(fā)。在實(shí)習(xí)其間跟隨項(xiàng)目經(jīng)理進(jìn)行了qq聊天通訊工具的設(shè)計(jì),實(shí)習(xí)期間分別對qq的通訊原理,界面設(shè)計(jì),通訊過程,進(jìn)行了詳細(xì)的分析與操作。 2

2、實(shí)習(xí)內(nèi)容2. 1 實(shí)習(xí)過程在實(shí)習(xí)期間跟隨項(xiàng)目經(jīng)理,在linux系統(tǒng)下面,使用EJAVALIPSE開發(fā)工具,使用java語言進(jìn)行支持跨平臺的即時通訊軟件研發(fā)。我們主要進(jìn)行了qq聊天通訊工具的設(shè)計(jì),實(shí)習(xí)期間分別對qq的通訊原理,界面設(shè)計(jì),通訊過程,進(jìn)行了詳細(xì)的分析。22 實(shí)習(xí)內(nèi)容 第一天開學(xué)典禮及實(shí)習(xí)主要內(nèi)容的介紹,Java語言的一些簡單操作 第二天Java中的標(biāo)識符,關(guān)鍵字,數(shù)據(jù)類型的簡單介紹 If else,while,do while語句的使用 第三天通過寫類 創(chuàng)建對象,面向?qū)ο蟮奶卣鲀绍妼φ居螒?第四天圖形界面開發(fā)與及時通訊系統(tǒng)項(xiàng)目概要設(shè)計(jì)及時通訊系統(tǒng)客戶端界面設(shè)計(jì)第五天及時通訊系統(tǒng)客戶端

3、界面進(jìn)一步設(shè)計(jì)面試技巧及職業(yè)生涯規(guī)劃第六天完成及時通訊系統(tǒng)客戶端界面的設(shè)計(jì) 程序一import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.io.ObjectInputStream;imp

4、ort java.io.ObjectOutputStream;import java.io.OutputStream;import .Socket;import javax.swing.DefaultListModel;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JMenu;import javax.swing.JMenuBar;impo

5、rt javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class Client extends JFrame implements ActionListener /northJPanel north = new JPanel();JMenuBar bar = new JMenuBar();JMe

6、nu m1 = new JMenu("conServer");JMenu m2 = new JMenu("about");JMenuItem conServer = new JMenuItem("conServer");JMenuItem disServer = new JMenuItem("disServer");JMenuItem exit = new JMenuItem("exit");JMenuItem about = new JMenuItem("aboutSoft"

7、;);ImageIcon icon = new ImageIcon(Client.class.getResource("top.jpg");JLabel img = new JLabel(icon);/westJPanel west = new JPanel();ImageIcon icon2 = new ImageIcon(Client.class.getResource("left.jpg");JLabel img2 = new JLabel(icon2);DefaultListModel dlm = new DefaultListModel();J

8、List userList = new JList(dlm);JScrollPane listPane = new JScrollPane(userList);/centerJPanel center = new JPanel();JTextArea showMsg = newJScrollPane showPane = new JScrollPane(showMsg);JPanel operPane = new JPanel();JLabel msg = new JLabel("please input:");JTextField msgInput = new JText

9、Field(40);JButton send = new JButton("send");String name;Socket socket = null;ObjectOutputStream oos = null;public Client() init();initFrame(); public void init() /northconServer.addActionListener(this);disServer.addActionListener(this);exit.addActionListener(this);about.addActionListener(

10、this);m1.add(conServer);m1.add(disServer);m1.add(exit);m2.add(about);bar.add(m1); bar.add(m2);BorderLayout bl = new BorderLayout();north.setLayout(bl);north.add(bar,BorderLayout.NORTH);north.add(img,BorderLayout.SOUTH);this.add(north,BorderLayout.NORTH);/westuserList.setBackground(Color.gray);Font f

11、 = new Font("隸書",Font.BOLD,23);userList.setFont(f);Dimension dim = new Dimension(150,340);listPane.setPreferredSize(dim);BorderLayout bl2 = new BorderLayout();west.setLayout(bl2);west.add(img2,BorderLayout.NORTH);west.add(listPane,BorderLayout.SOUTH);this.add(west,BorderLayout.WEST);/cente

12、rsend.addActionListener(this);showMsg.setEditable(false);showMsg.setBackground(Color.green);FlowLayout fl3 = new FlowLayout(FlowLayout.LEFT);operPane.setLayout(fl3);showMsg.setFont(new Font("宋體",Font.BOLD,25);operPane.add(msg);operPane.add(msgInput);operPane.add(send);BorderLayout bl3 = ne

13、w BorderLayout();center.setLayout(bl3);center.add(showPane,BorderLayout.NORTH);center.add(operPane,BorderLayout.SOUTH);this.add(center,BorderLayout.CENTER); public void initFrame()this.setLocation(200, 200);this.setResizable(false);this.setTitle("Welcome To XXXX");this.setSize(800, 600);th

14、is.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true); public static void main(String args) Client c = new Client();Overridepublic void actionPerformed(ActionEvent ae) String comm = ae.getActionCommand();if(comm.equals("send")String str = msgInput.getText();if(socket = null)JOpt

15、ionPane.showMessageDialog(this, "please connect server.");return ;if(str = null | str.trim().equals("")JOptionPane.showMessageDialog(this, "can not send null string");return ;Message msg = new Message();msg.msgType = "chat"msg.content = str;msg.from = name;msg

16、Input.setText("");try oos.writeObject(msg);oos.flush(); catch (IOException e) else if(comm.equals("conServer")int cnt = 0;for(;)cnt+;String ip = JOptionPane.showInputDialog(this, "please input server IP:");String port = JOptionPane.showInputDialog(this, "please inp

17、ut server Port:");System.out.println(ip+" "+port);trysocket = new Socket(ip,Integer.parseInt(port);System.out.println(socket);catch(Exception e)System.out.println("connect server ERROR!");JOptionPane.showMessageDialog(this, "connect server ERROR!");if(cnt = 3 &

18、& socket = null)JOptionPane.showMessageDialog(this, "sorry, input 3 times");System.exit(0);if(socket != null)break;name = JOptionPane.showInputDialog(this, "please input your name:");new Thread()public void run()try while(true)ObjectInputStream ois = new ObjectInputStream(soc

19、ket.getInputStream();Object obj = ois.readObject();Message msg = (Message)obj;String type = msg.msgType;if(type.equals("login")if(dlm.size() = 0)for(Object obj2 : msg.userList)dlm.addElement(obj2);elsedlm.addElement(msg.from);String str = msg.content;if(showMsg.getText() = null | showMsg.g

20、etText().trim().equals("")showMsg.setText(str);elseshowMsg.setText(showMsg.getText()+"n"+str); catch (Exception e) .start();Message message = new Message();message.from = name;message.msgType = "login"try OutputStream os = socket.getOutputStream();oos = new ObjectOutput

21、Stream(os);oos.writeObject(message);oos.flush(); catch (IOException e) this.setTitle(name+",welcome to chatroom");else if(comm.equals("disServer")System.out.println("dis Server");else if(comm.equals("aboutSoft")System.out.println("soft msg.");else if

22、(comm.equals("exit")System.exit(0);程序三import java.io.*;import java.util.*;public class Message implements Serializable public String from;public String to;public String msgType;public Date sendTime;public String content;public List userList = new ArrayList();import java.io.IOException;impo

23、rt java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import .ServerSocket;import .Socket;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;public class Server private ServerSocket ss;private List sockets = ne

24、w ArrayList();private List names = new ArrayList();public Server() try /192.168.0.233ss = new ServerSocket(9999); catch (IOException e) public static void main(String args) new Server().go();private void go() while (true) try / 等待用戶連接Socket socket = ss.accept();sockets.add(socket);System.out.println

25、(socket.getRemoteSocketAddress();final Socket s = socket;new Thread() public void run() try InputStream is = s.getInputStream();ObjectInputStream ois = new ObjectInputStream(is);while (true) Object obj = ois.readObject();Message msg = (Message) obif (msg.msgType.equals("login") names.add(m

26、sg.from);String temp = ""+ msg.from+ "上線了"+ new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")format(new Date();System.out.println(temp);msg.content = temp;msg.userList = names;sendMsg(msg); else if (msg.msgType.equals("chat") String temp = ""+ msg.from+ &q

27、uot;:"+ msg.content+ ""+ new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date();System.out.println(temp);msg.content = temp;sendMsg(msg); else if (msg.msgType.equals("logout") String temp = ""+ msg.from+ "下線了"+ new SimpleDateFormat("

28、yyyy-MM-dd hh:mm:ss")format(new Date();System.out.println(temp);msg.content = temp;sendMsg(msg); catch (Exception e) private void sendMsg(Message msg) /為每個客戶端發(fā)送消息對象for(Object obj : sockets)try Socket s = (Socket)obj;ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream();oos.writeOb

29、ject(msg);oos.flush(); catch (IOException e) / TODO Auto-generated catch block.start(); catch (IOException e) 23 主要成果 3總結(jié)3.1實(shí)習(xí)體會 來達(dá)內(nèi)實(shí)習(xí)僅僅一個禮拜,來但收獲聽多的。之前覺得只不過只是走一個形式而已,所以就隨便選了一個實(shí)習(xí)單位。漸漸的我的想法轉(zhuǎn)變了很多。首先是達(dá)內(nèi)的生活老師:有一種回到小時候的感覺,很親切很舒服。累了會讓我們睡一會,困了讓我們歇歇,很負(fù)責(zé)很認(rèn)真。代課老師循循善誘 講課認(rèn)真深入淺出,只是自己不太感興趣。不過可能是夏天的原因吧,教室太堵了,悶的很。自己

30、學(xué)了不少知識,覺得受益匪淺,首先從心態(tài)上有了轉(zhuǎn)變,簡單的說就是從一名學(xué)生到一個職業(yè)人的轉(zhuǎn)變。無論在哪個工作崗位上,首先盡快適應(yīng)工作環(huán)境,融入集體,趕上同事的步伐。其次,在熟練掌握各種業(yè)務(wù)知識的同時,不斷注意學(xué)習(xí),腳踏實(shí)地的做好每一份工作。積累實(shí)踐經(jīng)驗(yàn)。由于時間的關(guān)系,我們的這次實(shí)踐課程老師并沒有給我們詳細(xì)的介紹,只是給我們簡單的介紹了幾個比較重要的實(shí)際操作。但是從這些課程中學(xué)到了不少學(xué)習(xí)軟件的方法?,F(xiàn)作如下概括首先將理論聯(lián)系實(shí)際注重上機(jī)過程一個JAVA語言程序從編輯、編譯、連接到運(yùn)行,都要在一定的外部操作環(huán)境下才能進(jìn)行。所謂"環(huán)境"就是所用的計(jì)算機(jī)系統(tǒng)硬件、軟件條件,只有學(xué)會使用這些環(huán)境,才能進(jìn)行程序開發(fā)工作。通過上機(jī)實(shí)驗(yàn),熟練地掌握J(rèn)AVA語言開發(fā)環(huán)境,為以后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論