趣百科

如何在局域网内实现聊天

编辑:Simone 2024-11-09 05:34:34 608 阅读

如何在局域网内实现聊天

利用udp协议,实现局域网聊天

打开MyEclipse,创建一个JAVA PROJECT,填写项目名称(任意名称)

点FINISH完成创建,再选择项目名,右击新建class,只填Name空格,填个A.点finnish完成。

完成后进入java代码界面,把下面代码复制到里面就行啦

import java.net.*;

import java.io.*;

class A

{

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

{

DatagramSocket sendSocket = new DatagramSocket(9998); //发送端

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

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"),

369

);

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;

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

dsock.receive(dataPack); //将获取的数据保存到指定的数据包

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

String data = new String(dataPack.getData(),0,dataPack.getLength()); //getData缓冲区

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代码制作)

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/life/53730.html

相关推荐