JavaUDP簡單的聊天實現(xiàn)_第1頁
JavaUDP簡單的聊天實現(xiàn)_第2頁
JavaUDP簡單的聊天實現(xiàn)_第3頁
JavaUDP簡單的聊天實現(xiàn)_第4頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、Java UDP簡單的聊天軟件用UDP進行通訊,不分客戶端還是服務器,因此一個文件即可搞定。并顯示在文件中主線程用于從控制臺接受輸入,并新開一個線程,用于接受發(fā)送來的消息,控制臺上。第一個客戶端的啟動如下:D:XubuntuMJdpTestXsrcjaua SendClient 127,0-0-1 12345 54321第二個類似,將發(fā)送端口和接收端口反一下就可以了 之后就可以進行通訊了。sendClient.javaimport java.io.BufferedReader;import java.i o.I OExcepti on;import java.i o.ln putStreamR

2、eader;import java .n et.*;public class Sen dClie nt impleme nts Runn ableDatagramSocket sen dSocket, receiveSocket;DatagramPacket sen dPack,receivePack; private In etAddress sen dIP;private int sen dPort,receivePort;private byte in Buf,outBuf;public static final int BUFSIZE = 1024;II無參構(gòu)造函數(shù),在此函數(shù)中給出了I

3、P,端口的默認值public SendClient() super();try this.se ndIP = In etAddress.getByName(127.0.0.1); catch (UnknownH ostExcepti on e) II TODO Auto-ge nerated catch blocke.pri ntStackTrace(); this.sendPort = 12345; this.receivePort = 54321; this.inBuf = new byteBUFSIZE;/ 構(gòu)造函數(shù)public SendClient(String sendIP, int

4、 sendPort, int receivePort) super();try this.sendIP = InetAddress.getByName(sendIP); catch (UnknownHostException e) / TODO Auto-generated catch block e.printStackTrace(); this.sendPort = sendPort; this.receivePort = receivePort; this.inBuf = new byteBUFSIZE;/ 創(chuàng)建的新的線程用于不停的接收信息,如果有新的信息來到,則顯示在控制臺上 Over

5、ridepublic void run() String msg ;/ TODO Auto-generated method stubtry this.receiveSocket = new DatagramSocket(receivePort);this.receivePack = new DatagramPacket(inBuf,BUFSIZE); catch (SocketException e) / TODO Auto-generated catch blocke.printStackTrace();while(true)try receiveSocket.receive(receiv

6、ePack); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace();msg = new String(receivePack.getData(),0,receivePack.getLength();System.out.println(nreceive message:+msg);newpublic void sendMessage(String msg) this.outBuf = msg.getBytes(); this.sendPack = DatagramPacket(this.outB

7、uf,this.outBuf.length,this.sendIP ,this.sendPort); try this.sendSocket = new DatagramSocket(); sendSocket.send(sendPack); catch (SocketException e) / TODO Auto-generated catch block e.printStackTrace(); catch(IOException e) e.printStackTrace();/ 從控制臺接受三個參數(shù)/ 第一個參數(shù)為需要連接的主機的 IP/ 第二個參數(shù)為向主機發(fā)送的端口號/ 第三個參數(shù)為

8、本機接受信息的端口號 public static void main(String args) if(args.length=0) return ;String ip = args0;int sendPort = Integer.parseInt(args1);int receivePort = Integer.parseInt(args2);/ 創(chuàng)建通訊類,并啟動線程/ 創(chuàng)建的新的線程用于不停的接收信息,如果有新的信息來到,則顯示在控制臺 上/ 主線程用于接收輸入 SendClient sc = new SendClient(ip,sendPort,receivePort); (new Thread(sc).start();BufferedReader br=new BufferedReader(new InputStreamReader(System.in); System.out.println(press the enter to send message:);while(true) /System.out.print(write in:); String msg=; try msg = br.readLine();if(msg.equ

溫馨提示

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

評論

0/150

提交評論