JAVA 局域网聊天_java实现简易局域网聊天功能
本文實例為大家分享了java使用udp模式編寫聊天程序的具體代碼,供大家參考,具體內容如下
java代碼:
/*
使用udp模式,編寫一個聊天程序
有發送和接收數據2部分,
一個線程接收,一個線程發送
由于發送和接收動作是不一致的,所以要使用2個run方法
而且這兩個方法要封裝到不同的類中
本程序忽略了部分異常的處理,也未加入ui組件
這樣比較簡潔
發送端口9998
接受端口9999
用的是局域網廣播地址,所以自己發的消息自己也收到了
[示例]:簡易控制臺聊天程序
*/
import java.net.*;
import java.io.*;
class demo
{
public static void main(string[] args) throws exception
{
datagramsocket sendsocket = new datagramsocket(9998); //發送端
datagramsocket recesocket = new datagramsocket(9999); //接收端
new thread(new msgsend(sendsocket)).start(); //發送線程
new thread(new msgrece(recesocket)).start(); //接受線程
}
}
class msgsend implements runnable //發送
{
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 = //數據打包
new datagrampacket( databuf,
databuf.length,
inetaddress.getbyname("192.168.1.255"), //廣播
9999 //目標端口
);
dsock.send(datapack);
}
}
}
bufr.close();
dsock.close();
}
catch(exception e)
{
throw new runtimeexception("發送失敗!");
}
}
}
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); //將獲取的數據保存到指定的數據包
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();
}
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持萬仟網。
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的JAVA 局域网聊天_java实现简易局域网聊天功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【内网安全-隧道搭建】内网穿透_Ngro
- 下一篇: i.MX6ULL终结者Putty软件的安