java實現(xiàn)簡易局域網(wǎng)聊天功能代碼介紹
局域網(wǎng)通常是分布在一個有限地理范圍內(nèi)的網(wǎng)絡(luò)系統(tǒng),一般所涉及的地理范圍只有幾公里。局域網(wǎng)專用性非常強,具有比較穩(wěn)定和規(guī)范的拓撲結(jié)構(gòu)。這篇文章主要為大家詳細介紹了java實現(xiàn)簡易局域網(wǎng)聊天功能,使用UDP模式編寫一個聊天程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
Java代碼:
/*
使用UDP模式,編寫一個聊天程序
有發(fā)送和接收數(shù)據(jù)2部分,
一個線程接收,一個線程發(fā)送
由于發(fā)送和接收動作是不一致的,所以要使用2個run方法
而且這兩個方法要封裝到不同的類中
本程序忽略了部分異常的處理,也未加入UI組件
這樣比較簡潔
發(fā)送端口9998
接受端口9999
用的是局域網(wǎng)廣播地址,所以自己發(fā)的消息自己也收到了
[示例]:簡易控制臺聊天程序
*/
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+" <對方端口>: "+port+" 的消息");
System.out.println(data);
}
}
catch(Exception e)
{
throw new RuntimeException("接受失敗!");
}
finally
{
dsock.close();
}
}
}
補充:局域網(wǎng)、校園網(wǎng)安全維護方法
校園網(wǎng)絡(luò)分為內(nèi)網(wǎng)和外網(wǎng),就是說他們可以上學(xué)校的內(nèi)網(wǎng)也可以同時上互聯(lián)網(wǎng),大學(xué)的學(xué)生平時要玩游戲購物,學(xué)校本身有自己的服務(wù)器需要維護;
在大環(huán)境下,首先在校園網(wǎng)之間及其互聯(lián)網(wǎng)接入處,需要設(shè)置防火墻設(shè)備,防止外部攻擊,并且要經(jīng)常更新抵御外來攻擊;
由于要保護校園網(wǎng)所有用戶的安全,我們要安全加固,除了防火墻還要增加如ips,ids等防病毒入侵檢測設(shè)備對外部數(shù)據(jù)進行分析檢測,確保校園網(wǎng)的安全;
外面做好防護措施,內(nèi)部同樣要做好防護措施,因為有的學(xué)生電腦可能帶回家或者在外面感染,所以內(nèi)部核心交換機上要設(shè)置vlan隔離,旁掛安全設(shè)備對端口進行檢測防護;
內(nèi)網(wǎng)可能有ddos攻擊或者arp病毒等傳播,所以我們要對服務(wù)器或者電腦安裝殺毒軟件,特別是學(xué)校服務(wù)器系統(tǒng)等,安全正版安全軟件,保護重要電腦的安全;
對服務(wù)器本身我們要安全server版系統(tǒng),經(jīng)常修復(fù)漏洞及更新安全軟件,普通電腦一般都是撥號上網(wǎng),如果有異常上層設(shè)備監(jiān)測一般不影響其他電腦。做好安全防范措施,未雨綢繆。
局域網(wǎng)聊天功能相關(guān)文章: