學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 網(wǎng)絡(luò)知識(shí) > 網(wǎng)絡(luò)基礎(chǔ)知識(shí) >

java實(shí)現(xiàn)簡(jiǎn)易局域網(wǎng)聊天功能代碼介紹

時(shí)間: 加城1195 分享

  局域網(wǎng)通常是分布在一個(gè)有限地理范圍內(nèi)的網(wǎng)絡(luò)系統(tǒng),一般所涉及的地理范圍只有幾公里。局域網(wǎng)專用性非常強(qiáng),具有比較穩(wěn)定和規(guī)范的拓?fù)浣Y(jié)構(gòu)。這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易局域網(wǎng)聊天功能,使用UDP模式編寫一個(gè)聊天程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

  Java代碼:

  /*

  使用UDP模式,編寫一個(gè)聊天程序

  有發(fā)送和接收數(shù)據(jù)2部分,

  一個(gè)線程接收,一個(gè)線程發(fā)送

  由于發(fā)送和接收動(dòng)作是不一致的,所以要使用2個(gè)run方法

  而且這兩個(gè)方法要封裝到不同的類中

  本程序忽略了部分異常的處理,也未加入U(xiǎn)I組件

  這樣比較簡(jiǎn)潔

  發(fā)送端口9998

  接受端口9999

  用的是局域網(wǎng)廣播地址,所以自己發(fā)的消息自己也收到了

  [示例]:簡(jiǎn)易控制臺(tái)聊天程序

  */

  import java.net.*;

  import java.io.*;

  class Demo

  {

  public static void main(String[] args) throws Exception

  {

  DatagramSocket sendSocket = new DatagramSocket(9998); //發(fā)送端

  DatagramSocket receSocket = new DatagramSocket(9999); //接收端

  new Thread(new MsgSend(sendSocket)).start(); //發(fā)送線程

  new Thread(new MsgRece(receSocket)).start(); //接受線程

  }

  }

  class MsgSend implements Runnable //發(fā)送

  {

  private DatagramSocket dsock;

  public MsgSend(DatagramSocket dsock)

  {

  this.dsock= dsock;

  }

  public void run()

  {

  BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

  String lineStr = null;

  try

  {

  while(true)

  {

  lineStr = bufr.readLine();

  if(lineStr!=null)

  {

  if(lineStr.equals("over886"))

  {

  break;

  }

  else

  {

  byte[] dataBuf = lineStr.getBytes();

  DatagramPacket dataPack = //數(shù)據(jù)打包

  new DatagramPacket( dataBuf,

  dataBuf.length,

  InetAddress.getByName("192.168.1.255"), //廣播

  9999 //目標(biāo)端口

  );

  dsock.send(dataPack);

  }

  }

  }

  bufr.close();

  dsock.close();

  }

  catch(Exception e)

  {

  throw new RuntimeException("發(fā)送失敗!");

  }

  }

  }

  class MsgRece implements Runnable //接收

  {

  private DatagramSocket dsock;

  public MsgRece(DatagramSocket dsock)

  {

  this.dsock= dsock;

  }

  public void run()

  {

  try

  {

  while(true)

  {

  byte[] dataBuf = new byte[1024];

  DatagramPacket dataPack = new DatagramPacket(dataBuf,dataBuf.length);

  dsock.receive(dataPack); //將獲取的數(shù)據(jù)保存到指定的數(shù)據(jù)包

  String ip = dataPack.getAddress().getHostAddress();

  String data = new String(dataPack.getData(),0,dataPack.getLength());

  int port = dataPack.getPort();

  System.out.println();

  System.out.println("來自ip為 "+ip+" <對(duì)方端口>: "+port+" 的消息");

  System.out.println(data);

  }

  }

  catch(Exception e)

  {

  throw new RuntimeException("接受失敗!");

  }

  finally

  {

  dsock.close();

  }

  }

  }

  補(bǔ)充:局域網(wǎng)、校園網(wǎng)安全維護(hù)方法

  校園網(wǎng)絡(luò)分為內(nèi)網(wǎng)和外網(wǎng),就是說他們可以上學(xué)校的內(nèi)網(wǎng)也可以同時(shí)上互聯(lián)網(wǎng),大學(xué)的學(xué)生平時(shí)要玩游戲購物,學(xué)校本身有自己的服務(wù)器需要維護(hù);

  在大環(huán)境下,首先在校園網(wǎng)之間及其互聯(lián)網(wǎng)接入處,需要設(shè)置防火墻設(shè)備,防止外部攻擊,并且要經(jīng)常更新抵御外來攻擊;

  由于要保護(hù)校園網(wǎng)所有用戶的安全,我們要安全加固,除了防火墻還要增加如ips,ids等防病毒入侵檢測(cè)設(shè)備對(duì)外部數(shù)據(jù)進(jìn)行分析檢測(cè),確保校園網(wǎng)的安全;

  外面做好防護(hù)措施,內(nèi)部同樣要做好防護(hù)措施,因?yàn)橛械膶W(xué)生電腦可能帶回家或者在外面感染,所以內(nèi)部核心交換機(jī)上要設(shè)置vlan隔離,旁掛安全設(shè)備對(duì)端口進(jìn)行檢測(cè)防護(hù);

  內(nèi)網(wǎng)可能有ddos攻擊或者arp病毒等傳播,所以我們要對(duì)服務(wù)器或者電腦安裝殺毒軟件,特別是學(xué)校服務(wù)器系統(tǒng)等,安全正版安全軟件,保護(hù)重要電腦的安全;

  對(duì)服務(wù)器本身我們要安全server版系統(tǒng),經(jīng)常修復(fù)漏洞及更新安全軟件,普通電腦一般都是撥號(hào)上網(wǎng),如果有異常上層設(shè)備監(jiān)測(cè)一般不影響其他電腦。做好安全防范措施,未雨綢繆。


局域網(wǎng)聊天功能相關(guān)文章:

1.局域網(wǎng)怎樣使用微信語音聊天功能

2.局域網(wǎng)下怎么聊天用到什么命令

3.局域網(wǎng)微信功能知多少

4.局域網(wǎng)微信消息列表在哪

5.怎么給局域網(wǎng)電腦發(fā)消息

4051279