本文实例为大家分享了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实现简易局域网聊天功能相关推荐

  1. JAVA 局域网聊天_java实现简易局域网聊天功能

    本文实例为大家分享了java使用udp模式编写聊天程序的具体代码,供大家参考,具体内容如下 java代码: /* 使用udp模式,编写一个聊天程序 有发送和接收数据2部分, 一个线程接收,一个线程发送 ...

  2. python语言视频-Python语言之Python3 实现简易局域网视频聊天工具

    本文主要向大家介绍了Python语言之Python3 实现简易局域网视频聊天工具,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 操作系统为 Ubuntu 16.04,OpenCV ...

  3. Python3 实现简易局域网视频聊天工具

    Python3 实现简易局域网视频聊天工具 1.环境 操作系统为 Ubuntu 16.04 python 3.5 opencv-python 3.4.1.15 numpy 1.14.5 PyAudio ...

  4. 简单java socket_基于Java Socket实现一个简易在线聊天功能(一)

    最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到脚本之家平台,以此做个记录,方便自己和大家使用. 先给大家说下实现步骤分这样几大步: 1.使用 ...

  5. Android实现强制下线(不同应用之间)功能————简易微信聊天示例

    具体需要看具体的实际情况,这是曾经遇到的问题以及解决方案 实现强制下线(不同应用之间)功能----简易微信聊天示例 强制下线功能需要先关闭所有活动,然后在回到登录界面. 新建一个ActivityCol ...

  6. 使用Node+websocket实现简易1v1聊天室(前端+服务器)

    使用Node+websocket实现简易1v1聊天室(前端+服务器) 前提: 安装好node环境~~~ 可使用 node -v 和 npm -v 查看是否装好 实现逻辑: 用户A 用户B 服务器 用户 ...

  7. 简易QQ聊天室,socket多线程编程(C语言实现),简单易懂

    简易QQ聊天室 实现本功能,仅需了解socket套接字的使用,我已经将socket套接字的监听接受状态封装在了common.c中,相信你看了会有所收获,socket的连接也封装在common.c中. ...

  8. 基于WebServices简易网络聊天工具的设计与实现

    基于WebServices简易网络聊天工具的设计与实现 Copyright 朱向洋 Sunsea ALL Right Reserved 一.项目内容 本次课程实现一个类似QQ的网络聊天软件的功能:服务 ...

  9. 斯是陋室(译文:虽是个简易的聊天室)

    今天来分享一个简易小程序,也算是我个人的第一个小项目,具体介绍如下 一.项目名称 基于多线程的简易聊天室 二.实现功能 客户端连接到服务器,并与服务器之间进行交流,服务器可处理客户端的注册与退出事件: ...

  10. python实现一对一聊天_vue+django实现一对一聊天功能

    vue+django实现一对一聊天和消息推送的功能.主要是通过websocket,由于Django不支持websocket,所以我使用了django-channels.考虑到存储量的问题,我并没有把聊 ...

最新文章

  1. 借组磁带机求第K小元素
  2. Ubuntu composer安装失败解决方案
  3. 苹果手机怎么清理听筒灰尘_安卓 | 让手机自动清理听筒扬声器灰尘,你试过了吗?...
  4. Python之深入解析一行代码计算每个省面积的神器Geopandas
  5. P3309-[SDOI2014]向量集【线段树,凸壳】
  6. 数据结构(三)之单链表反向查找
  7. Billboard HDU - 2795(树状数组,单点修改,区间查询)
  8. 广西全国计算机二级考试内容,全国高校计算机等级考试(广西考区)二级考试大纲.doc...
  9. shell 截取某个字符串之后的内容
  10. 脑语言v0.5.8 2500令【单字编程】
  11. 无人机项目跟踪记录七十七----蓝牙模块详解
  12. 【USACO】 录制唱片
  13. Linux驱动模块加载失败
  14. pytorch 介绍
  15. Spring Cloud与Dubbo优缺点详解
  16. top--查看服务器CPU及内存使用情况
  17. EEPROM,NAND,NOR,QSPI FLASH的区别
  18. 在Excel数据最后一行下面写入数据的一种方法
  19. 人人都是产品经理 - 苏杰 读书笔记
  20. 项目管理:项目经理如何创建项目日程计划表

热门文章

  1. 海康4200服务器进不去系统,ivms-4200客户端登入不了云服务器
  2. itx机箱尺寸_讲解 ATX M-ATX ITX 各种主板尺寸
  3. 地理空间数据云 如何预约下载数据 Landsat8
  4. [解读] GuiltyGearXrd‘s Art Style : The X Factor Between 2D and 3D - GGX 3D 渲染 2D 风格
  5. PLC江湖波澜不惊,自动化风云录!
  6. 带你穿越古罗马,元宇宙巴士来啦 #Invisible Cities
  7. Web前端第三季(JavaScript):十二:第4章: 表单校验案例:401-开发注册表单页面+402-表单提交事件和获取html元素+403-完成用户名和邮箱的校验
  8. 三星s8html查看器,三星S8/S8+ 刷机软件工具
  9. python中的chardet模块
  10. 差分探头和隔离探头有什么区别