基于udp的多人聊天系統(tǒng)源代碼_第1頁
基于udp的多人聊天系統(tǒng)源代碼_第2頁
基于udp的多人聊天系統(tǒng)源代碼_第3頁
基于udp的多人聊天系統(tǒng)源代碼_第4頁
基于udp的多人聊天系統(tǒng)源代碼_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于UDP的多人聊天系統(tǒng)只需把兩個(gè)客戶段代碼與一個(gè)服務(wù)器代碼導(dǎo)入就可以了,記得要把服務(wù)器ip:7(也可以自己在服務(wù)器程序中改一下),每個(gè)客戶端需要設(shè)置一下ip,比如A客戶端:8,B客戶端:8,A客戶端向B客戶端通訊時(shí),“請(qǐng)輸入對(duì)方ip”,這項(xiàng)改為8,就可以了??蛻舳嗽创a程序:ChatFram.javapackageChatFrame_01;import.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.lang.*;importjava.awt.color.*;importjavax.swing.JOptionPane;publicclassChatFrameextendsJFrame{ JPanelcontentPane; JLabellabel1=newJLabel();//發(fā)送消息 JLabellabel2=newJLabel();//輸入ip Labellabel3=newLabel();//輸入端口標(biāo)簽 Labellabel4=newLabel();//輸出端口標(biāo)簽 JTextFieldtextField1=newJTextField();//發(fā)送消息 JTextFieldtextField2=newJTextField();//輸入ip JTextFieldtextField3=newJTextField();//獲得輸入端口 JTextFieldtextField4=newJTextField();//獲得輸出端口 JButtonbutton1=newJButton("發(fā)送");//發(fā)送消息 TextAreatextArea1=newTextArea(); JOptionPanejopane=newJOptionPane(); DatagramPacketsendpacket,receivepacket;//聲明發(fā)送和接收數(shù)據(jù)包 DatagramSocketsendsocket,receivesocket;//聲明發(fā)送和接收DatagramSocket publicChatFrame(){ enableEvents(AWTEvent.WINDOW_EVENT_MASK); try{ toInit(); }catch(Exceptione){ e.printStackTrace(); } } privatevoidtoInit()throwsException{ contentPane=(JPanel)this.getContentPane(); label1.setText("發(fā)送信息:"); label1.setBounds(newRectangle(13,100,60,21)); contentPane.setLayout(null); contentPane.setBackground(Color.pink); this.setSize(newDimension(363,502)); this.setTitle("多人聊天室"); label2.setText("輸入對(duì)方IP地址:"); label2.setBounds(newRectangle(12,19,109,23)); label3.setText("輸入端口:"); label3.setBounds(newRectangle(12,58,55,22)); label4.setText("輸出端口:"); label4.setBounds(newRectangle(180,58,55,22)); textField3.setText("3000"); textField4.setText("3001"); button1.setBounds(newRectangle(280,100,59,21)); button1.addActionListener(newjava.awt.event.ActionListener(){ publicvoidactionPerformed(ActionEvente){ button1_actionPerformed(e); } }); textField1.addKeyListener(newKeyAdapter(){ publicvoidkeyPressed(KeyEvente){ if(e.getKeyCode()==KeyEvent.VK_ENTER){ Stringstr=textField2.getText(); Stringstr1=textField1.getText(); if(pareTo("")!=0&&!"".equals(str1)){ try{ textArea1.append("\nto"+textField2.getText() +":"+"3000"+"say:" +textField1.getText()); Strings=textField1.getText(); bytedata[]=s.getBytes("UTF-8"); sendpacket=newDatagramPacket( data, data.length, InetAddress.getByName("7"), 6666); sendsocket.send(sendpacket); }catch(IOExceptionexc){ exc.printStackTrace(); } textField1.setText(""); } } } }); textField4.setBounds(newRectangle(240,58,90,22)); textField3.setBounds(newRectangle(70,58,90,22)); textField2.setBounds(newRectangle(123,20,120,19)); textField1.setBounds(newRectangle(76,100,190,19)); textArea1.setBounds(newRectangle(11,140,333,315)); textArea1.setEditable(false); textArea1.setBackground(Color.white); contentPane.add(label4,null); contentPane.add(label3,null); contentPane.add(label2,null); contentPane.add(label1,null); contentPane.add(textField1,null); contentPane.add(textField2,null); contentPane.add(textField3,null); contentPane.add(textField4,null); contentPane.add(textArea1,null); contentPane.add(button1,null); this.setVisible(true); bind(); } protectedvoidprocessWindowEvent(WindowEvente){ cessWindowEvent(e); if(e.getID()==WindowEvent.WINDOW_CLOSING){ System.exit(0); } } publicvoidwaitforpackets(){//檢測并接受對(duì)方發(fā)來的消息 while(true){ try{ byte[]array=newbyte[100]; receivepacket=newDatagramPacket(array,array.length); receivesocket.receive(receivepacket);//接收 textArea1.append("\nfrom"+receivepacket.getAddress()+":" +receivepacket.getPort()+"get:"); Stringreceived=newString(receivepacket.getData(),0, receivepacket.getLength(),"UTF-8"); textArea1.append(received); }catch(IOExceptionse){ se.printStackTrace(); } } } voidbind(){//和對(duì)方建立連 try{ sendsocket=newDatagramSocket(3000); receivesocket=newDatagramSocket(3333); }catch(Exceptione){ } } voidbutton1_actionPerformed(ActionEvente){//發(fā)送消息到對(duì)方 Stringstr=textField2.getText(); Stringstr1=textField1.getText(); if(pareTo("")!=0&&!"".equals(str1)){ try{ textArea1.append("\nto"+textField2.getText()+":"+"3000" +"say:"+textField1.getText()); Strings=textField2.getText()+"|"+textField1.getText(); bytedata[]=s.getBytes("UTF-8"); sendpacket=newDatagramPacket(data,data.length,InetAddress .getByName("7"),6666); sendsocket.send(sendpacket); }catch(IOExceptionexc){ exc.printStackTrace(); } textField1.setText(""); } }}ChatApp.javapackageChatFrame_01;importjava.io.*;importjavax.swing.UIManager;importjava.awt.*;publicclassChatApp{ booleanpackFrame=false; ChatApp(){ ChatFrameframe=newChatFrame(); if(packFrame){ frame.pack(); }else{ frame.validate(); } //放置窗體在屏幕中央 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); DimensionframeSize=frame.getSize(); if(frameSize.height>screenSize.height){ frameSize.height=screenSize.height; } if(frameSize.width>screenSize.width){ frameSize.width=screenSize.width; } frame.setLocation((screenSize.width-frameSize.width)/2, (screenSize.height-frameSize.height)/2); frame.setVisible(true); frame.waitforpackets(); } publicstaticvoidmain(String[]args){ newChatApp(); }}服務(wù)器端:Server.javapackageChatFrame_01;import.DatagramPacket;import.DatagramSocket;import.InetAddress;import.Socket;importjava.util.*;publicclassServer{ Listips=newArrayList(); DatagramSocketsocket; DatagramPacketpacket; DatagramSocketssocket; DatagramPacketspacket; publicServer()throwsException{ socket=newDatagramSocket(6666); ssocket=newDatagramSocket(8888); } publicvoidlisten()throwsException{ byte[]array=newbyte[100]; packet=newDatagramPacket(array,array.length); socket.receive(packet); byte[]data=packet.getData(); Stringreceived=newString(data,0,data.length,"UTF-8"); System.out.println(received); String[]ss=received.split("\\|"); Stringip=ss[0]; byte[]dt=ss[1].getBytes("UTF-8"); spacket=newDatagramPacket(dt,dt.length,InetAddress.getByName(ip),3333); ssocket.send(spacket); } publicstaticvoidmain(String[]args)throwsException{ Servers=newServer(); while(true){ s.listen(); } }}

咖啡店創(chuàng)業(yè)計(jì)劃書第一部分:背景在中國,人們?cè)絹碓綈酆瓤Х?。隨之而來的咖啡文化充滿生活的每個(gè)時(shí)刻。無論在家里、還是在辦公室或各種社交場合,人們都在品著咖啡??Х戎饾u與時(shí)尚、現(xiàn)代生活聯(lián)系在一齊。遍布各地的咖啡屋成為人們交談、聽音樂、休息的好地方,咖啡豐富著我們的生活,也縮短了你我之間的距離,咖啡逐漸發(fā)展為一種文化。隨著咖啡這一有著悠久歷史飲品的廣為人知,咖啡正在被越來越多的中國人所理解。第二部分:項(xiàng)目介紹第三部分:創(chuàng)業(yè)優(yōu)勢(shì)目前大學(xué)校園的這片市場還是空白,競爭壓力小。而且前期投資也不是很高,此刻國家鼓勵(lì)大學(xué)生畢業(yè)后自主創(chuàng)業(yè),有一系列的優(yōu)惠政策以及貸款支持。再者大學(xué)生往往對(duì)未來充滿期望,他們有著年輕的血液、蓬勃的朝氣,以及初生牛犢不怕虎的精神,而這些都是一個(gè)創(chuàng)業(yè)者就應(yīng)具備的素質(zhì)。大學(xué)生在學(xué)校里學(xué)到了很多理論性的東西,有著較高層次的技術(shù)優(yōu)勢(shì),現(xiàn)代大學(xué)生有創(chuàng)新精神,有對(duì)傳統(tǒng)觀念和傳統(tǒng)行業(yè)挑戰(zhàn)的信心和欲望,而這種創(chuàng)新精神也往往造就了大學(xué)生創(chuàng)業(yè)的動(dòng)力源泉,成為成功創(chuàng)業(yè)的精神基礎(chǔ)。大學(xué)生創(chuàng)業(yè)的最大好處在于能提高自己的潛力、增長經(jīng)驗(yàn),以及學(xué)以致用;最大的誘人之處是透過成功創(chuàng)業(yè),能夠?qū)崿F(xiàn)自己的理想,證明自己的價(jià)值。第四部分:預(yù)算1、咖啡店店面費(fèi)用咖啡店店面是租賃建筑物。與建筑物業(yè)主經(jīng)過協(xié)商,以合同形式達(dá)成房屋租賃協(xié)議。協(xié)議資料包括房屋地址、面積、結(jié)構(gòu)、使用年限、租賃費(fèi)用、支付費(fèi)用方法等。租賃的優(yōu)點(diǎn)是投資少、回收期限短。預(yù)算10-15平米店面,啟動(dòng)費(fèi)用大約在9-12萬元。2、裝修設(shè)計(jì)費(fèi)用咖啡店的滿座率、桌面的周轉(zhuǎn)率以及氣候、節(jié)日等因素對(duì)收益影響較大。咖啡館的消費(fèi)卻相對(duì)較高,主要針對(duì)的也是學(xué)生人群,咖啡店布局、格調(diào)及采用何種材料和咖啡店效果圖、平面圖、施工圖的設(shè)計(jì)費(fèi)用,大約6000元左右3、裝修、裝飾費(fèi)用具體費(fèi)用包括以下幾種。(1)外墻裝飾費(fèi)用。包括招牌、墻面、裝飾費(fèi)用。(2)店內(nèi)裝修費(fèi)用。包括天花板、油漆、裝飾費(fèi)用,木工、等費(fèi)用。(3)其他裝修材料的費(fèi)用。玻璃、地板、燈具、人工費(fèi)用也應(yīng)計(jì)算在內(nèi)。整體預(yù)算按標(biāo)準(zhǔn)裝修費(fèi)用為360元/平米,裝修費(fèi)用共360*15=5400元。4、設(shè)備設(shè)施購買費(fèi)用具體設(shè)備主要有以下種類。(1)沙發(fā)、桌、椅、貨架。共計(jì)2250元(2)音響系統(tǒng)。共計(jì)450(3)吧臺(tái)所用的烹飪?cè)O(shè)備、儲(chǔ)存設(shè)備、洗滌設(shè)備、加工保溫設(shè)備。共計(jì)600(4)產(chǎn)品制造使用所需的吧臺(tái)、咖啡杯、沖茶器、各種小碟等。共計(jì)300凈水機(jī),采用美的品牌,這種凈水器每一天能生產(chǎn)12l純凈水,每一天銷售咖啡及其他飲料100至200杯,價(jià)格大約在人民幣1200元上下??Х葯C(jī),咖啡機(jī)選取的是電控半自動(dòng)咖啡機(jī),咖啡機(jī)的報(bào)價(jià)此刻就應(yīng)在人民幣350元左右,加上另外的附件也不會(huì)超過1200元。磨豆機(jī),價(jià)格在330―480元之間。冰砂機(jī),價(jià)格大約是400元一臺(tái),有點(diǎn)要說明的是,最好是買兩臺(tái),不然夏天也許會(huì)不夠用。制冰機(jī),從制冰量上來說,一般是要留有富余。款制冰機(jī)每一天的制冰量是12kg。價(jià)格稍高550元,質(zhì)量較好,所以能夠用很多年,這么算來也是比較合算的。5、首次備貨費(fèi)用包括購買常用物品及低值易耗品,吧臺(tái)用各種咖啡豆、奶、茶、水果、冰淇淋等的費(fèi)用。大約1000元6、開業(yè)費(fèi)用開業(yè)費(fèi)用主要包括以下幾種。(1)營業(yè)執(zhí)照辦理費(fèi)、登記費(fèi)、保險(xiǎn)費(fèi);預(yù)計(jì)3000元(2)營銷廣告費(fèi)用;預(yù)計(jì)450元7、周轉(zhuǎn)金開業(yè)初期,咖啡店要準(zhǔn)備必須量的流動(dòng)資金,主要用于咖啡店開業(yè)初期的正常運(yùn)營。預(yù)計(jì)2000元共計(jì): 120000+6000+5400+2250+450+600+300+1200+1200+480+400+550+1000+3000+450+2000=145280元第五部分:發(fā)展計(jì)劃1、營業(yè)額計(jì)劃那里的營業(yè)額是指咖啡店日常營業(yè)收入的多少。在擬定營業(yè)額目標(biāo)時(shí),必須要依據(jù)目前市場的狀況,再思考到咖啡店的經(jīng)營方向以及當(dāng)前的物價(jià)情形,予以綜合衡量。按照目前流動(dòng)人口以及人們對(duì)咖啡的喜好預(yù)計(jì)每一天的營業(yè)額為400-800,根據(jù)淡旺季的不同可能上下浮動(dòng)2、采購計(jì)劃依據(jù)擬訂的商品計(jì)劃,實(shí)際展開采購作業(yè)時(shí),為使采購資金得到有效運(yùn)用以及商品構(gòu)成達(dá)成平衡,務(wù)必針對(duì)設(shè)定的商品資料排定采購計(jì)劃。透過營業(yè)額計(jì)劃、商品計(jì)劃與采購計(jì)劃的確立,我們不難了解,一家咖啡店為了營業(yè)目標(biāo)的達(dá)成,同時(shí)有效地完成商品構(gòu)成與靈活地運(yùn)用采購資金,各項(xiàng)基本的計(jì)劃是不可或缺的。當(dāng)一家咖啡店設(shè)定了營業(yè)計(jì)劃、商品計(jì)劃及采購計(jì)劃之后,即可依照設(shè)定的采購金額進(jìn)行商品的采購。經(jīng)過進(jìn)貨手續(xù)檢驗(yàn)、標(biāo)價(jià)之后,即可寫在菜單上。之后務(wù)必思考的事情,就是如何有效地將這些商品銷售出去。3、人員計(jì)劃為了到達(dá)設(shè)定的經(jīng)營目標(biāo),經(jīng)營者務(wù)必對(duì)人員的任用與工作的分派有一個(gè)明確的計(jì)劃。有效利用人力資源,開展人員培訓(xùn),都是我們務(wù)必思考的。4、經(jīng)費(fèi)計(jì)劃經(jīng)營經(jīng)費(fèi)的分派是管理的重點(diǎn)工作。通常能夠?qū)⒖Х鹊杲?jīng)營經(jīng)費(fèi)分為人事類費(fèi)用(薪資、伙食費(fèi)、獎(jiǎng)金等)、設(shè)備類費(fèi)用(修繕費(fèi)、折舊、租金等)、維持類費(fèi)用(水電費(fèi)、消耗品費(fèi)、事務(wù)費(fèi)、雜費(fèi)等)和營業(yè)類費(fèi)用(廣告宣傳費(fèi)、包裝費(fèi)、營業(yè)稅等)。還能夠依其性質(zhì)劃分成固定費(fèi)用與變動(dòng)費(fèi)用。我們要針對(duì)過去的實(shí)際業(yè)績?cè)O(shè)定可能增加的經(jīng)費(fèi)幅度。5、財(cái)務(wù)計(jì)劃財(cái)務(wù)計(jì)劃中的損益計(jì)劃最能反映全店的經(jīng)營成果??Х鹊杲?jīng)營者在營運(yùn)資金的收支上要進(jìn)行控制,以便做到經(jīng)營資金合理的調(diào)派與運(yùn)用。總之,以上所列的六項(xiàng)基本計(jì)劃(營業(yè)額、商品采購、銷售促進(jìn)、人員、經(jīng)費(fèi)、財(cái)務(wù))是咖啡店管理不可或缺的。當(dāng)然,有一些咖啡店為求管理上更深入,也能夠配合工作實(shí)際需要制訂一些其他輔助性計(jì)劃。第六部分:市場分析2019-2021年中國咖啡市場經(jīng)歷了高速增長的階段,在此期間咖啡市場總體銷售的復(fù)合增長率到達(dá)了17%;高速增長的市場為咖啡生產(chǎn)企業(yè)帶給了廣闊的市場空間,國外咖啡生產(chǎn)企業(yè)如雀巢、卡夫、ucc等企業(yè)紛紛加大了在中國的投資力度,為爭取未來中國咖啡市場的領(lǐng)先地位打下了良好的基礎(chǔ)。咖啡飲料主要是指速溶咖啡和灌裝即飲咖啡兩大類咖啡飲品;在速溶咖啡方面,2018-2021年間中國速溶咖啡市場規(guī)模年均增長率到達(dá)16%,顯示出還處于成長階段的中國速溶咖啡市場的高增長性和投資空間;在灌裝即飲咖啡方面,2008-20

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論