java中怎么在一台机子上实现多个用户之间的信息交流,类似聊天室使用UDP数据报

package NetAdressDC;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class liaotianshi2 {

/**
 * @param args
 * @throws IOException 
 */
public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    System.out.println("kasiihi");

    DatagramSocket ds = new DatagramSocket(6000);
    DatagramSocket ds1 = new DatagramSocket(7000);
    new Thread(new send2(ds)).start();
    new Thread(new rece2(ds1)).start();

}

}
class send2 implements Runnable {

private DatagramSocket ds;

public send2(DatagramSocket ds) {
    super();
    this.ds = ds;
}

public void run() {
    // TODO Auto-generated method stub
    System.out.println("聊天开始");

    try {

        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
        String str = null;

        while((str=bufr.readLine())!=null)
        {
            if("over".equals(str))
            {break;}
            byte[] by = str.getBytes();
     //System.out.println(str);
            DatagramPacket dg = new DatagramPacket(by, by.length,InetAddress.getByName("172.24.118.1"),7000);
            ds.send(dg);

        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

}
class rece2 implements Runnable {
private DatagramSocket ds1;

public rece2(DatagramSocket ds1) {
    super();
    this.ds1 = ds1;
}
public void run() {
    // TODO Auto-generated method stub

while(true){

        byte[] buf = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf,buf.length);

        try {
            ds1.receive(dp);


            String ip  = dp.getAddress().getHostAddress();
            String text = new String(dp.getData(),0,dp.getLength());

            System.out.println(ip+"::"+text);
            if("88".equals(text)){
                System.out.println(ip+".....离开聊天室!!!");
            }
        } catch (IOException e) {

            e.printStackTrace();
        }

}
}
}
我是想在一台电脑上开几个控制台模拟进行多台电脑进行局域网之间的交流,但是不行,感觉应该是端口设置或者ip地址的写法有问题,求大神解,应该怎么写才能实现

2

2个回答

。。。。。。已解决,谢谢

0

端口的问题吧,不太明白

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
实现在同一台服务器上登录的ssh用户的群聊(聊天室)功能
直接上代码了,注释还算清晰,有问题欢迎提问指证。n为方便下载编译,代码都放到一个文件里了。n服务器是CentOS,客户端用的secureCRT。n/*n功能: 在同一台服务器上ssh登录的用户可以群聊(聊天室)nn原理: 1、通过roomNo.来区分不同的房间或群组;n 2、以roomNo.作为key来创建一块共享内存,来保存进入到该room的用户列表;n 3、用户以ssh(或其它方式)
java使用socket网络编程实现qq互聊,一个服务器和多个客户端
本代码实现的功能是:利用socket网络编程,实现一个服务器和多台客户端的互聊!
利用servlet实现一个简单的聊天室
利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。信息窗口显示发言人的姓名以及发言的内容。在进入聊天室之前需要进行登录,即输入用户名。
Java实现通过服务器实现客户端之间的简单群聊
描述:rn使用了socket编程。主要是通过服务器监听端口,对于新访问的客户端建立一个socket长连接。每次客户端输入信息,先传到服务器,再由服务发给在线的客户端。rn其功能模型如下:rnrnrnrn运行截图:rn1、需要先启动服务器端,界面如下:rnrn2、启动2或2个以上个客户端(名字随机):rnrn3、聊天结果:rnrnrnrn代码部分:rn服务器端代码实现:rnpackage pack2
Java小程序之简单多人聊天室的实现(山寨QQ前传)
Java小程序之简单多人聊天室的实现(山寨QQ前传)rnrnrn一、前言:rn通过对Java服务器生猛上手的学习,已经基本明白了Java中通信的基本原理,以及服务器,ip,ip地址的概念;rn我们思考下服务器到底是用来干嘛的呢?当多台客户端连上服务器以后,服务器需要提供的就是为连接进来的客户端提供相应的服务;具体的来说就是处理不同客户端发来的消息或者数据,然后把这些消息或者数据发送到另外的客户端;
能够与服务器连接交互的拥有界面的客户端-------------聊天窗口(实现群聊)
昨天晚上上完了客户端程序的编写,左哥给大家布置了一个作业————编写一个有界面的客户端。n我用今天晚上的时间来把这个作业做完了,整体来说,这个客户端界面不难写,只是其中的逻辑需要去好好理清。n首先,我创建了一个项目,然后我即学即用,把昨天学到的只是运用起来,将代码分成四个包去管理,common包:存放工具类,用于存放一些公用的函数。control包:存放逻辑控制类的包,用于存放程序的核心代码。
python编程练习----多用户聊天室,通信
基于python3.6实现多用户通信,简单聊天室rnrnrn代码:rn服务器代码:rnimport socket,selectrnrnrnconnection_list = []rnhost = ''rnport = 8000rnrnrndef board_cast(sock,message):rn    for socket in connection_list:rn        if soc
在一台Linux机器上安装Zookeeper集群
一、安装jdk、并配置环境变量,安装jdk就不再叙述。需要注意的是,jdk的版本和zookeeper的版本要匹配,自己在安装的过程中,使用Zookeeper3.5.4时,发现jdk7不支持,然后下载了Zookeeper3.4.13版本。nn一、新建zookeeper文件夹,并且在zookeeper文件夹下面新建server1、server2、server3文件夹nnnn二、进入server1文件夹...
java Socket实现简单在线聊天(一)
最近的项目有一个在线网页交流的需求,由于很久以前做过的demo已经忘记的差不多了,因此便重新学习一下。nnn我计划的大致实现步骤分这样几大步:n1、使用awt组件和socket实现简单的单客户端向服务端持续发送消息;n2、结合线程,实现多客户端连接服务端发送消息;n3、实现服务端转发客户端消息至所有客户端,同时在客户端显示;n4、把awt组件生成的窗口界面改成前端jsp或者html展
Socket编程,简单实现一台机器向另一台机器发消息
网上一搜,就可以看到一大堆的Socket编程介绍,一般是写个简单的服务端和客户端进行连接并做简单的交互。我这里又要多一篇这样的文章了,并不是故意的,而是有意的:D.当然不是直接复制粘贴,而是学习了解后亲自实践下来体会体会。nn之前做了个五子棋,要可以两个人对战的。如果是单机的话,两个人对战或人机对战,都是在一个客户端上进行的,你只需要考虑在一个客户端上的情况就行了。如果你写了一个客户端,同时安装在...
记一次系统架构的改造(如何在多个微服务项目中使用一套微信权限验证服务)
最近对公司的某在线项目进行了架构重组特记录一下,以后如有类似情况仍可进行参考。首先,公司现有springboot项目A,提供若干rest数据服务、前端页面展示、微信的jssdk权限验证服务、以及与前端页面通信的websocket服务。项目A提供了这么多服务也是有点汗颜,按理说应该继续拆分成更多的微服务,这就是一个产品没有好好设计想一点加一点导致的恶果。其次,公司最近想做另一个h5页面项目B,来提供...
用java socket做一个聊天室,实现多人聊天的功能。
用java socket做一个聊天室,实现多人聊天的功能。 可以参考http://blog.csdn.net/u013427822/article/details/54947649
java实现多人聊天(类似于QQ聊天)
java实现多人聊天(类似于QQ聊天)
两台linux机器之间如何发送信息
n n n 简介n今天突然碰到了一个需求,办公室里我有两台电脑,电脑A是我的笔记本,电脑B是我的台式电脑,A的浏览器中有一行代码很长,所以我这个人就比较懒不想打,如果可以向QQ那样直接用信息的方式发送一下就好了,所以就有了这篇文章n分析n首先我是不知道linux命令行下面有什么可以聊天的工具,而且我也不想装什么工具,但是我是知道linux不同tty下是可以发送信息的。...
java使用UDP数据报通讯方式QQ聊天系统:服务器、客户端
全栈工程师开发手册 (作者:栾鹏)n n java教程全解njava实现qq聊天系统,需要知道彼此的ip地址和端口号。数据传输使用UDP数据包,我们将首先发送数据的设为客户端,将响应回复的设为服务器端。所以需要先启动服务器端,等待客服端的发起,再启动客户端发起数据传输。使用控制台作为数据的输入和输出。服务器端代码package com.lp.app.webserver;import java.
简单的在线聊天室实现群聊和单聊,构建了简单的好友列表
简单的在线聊天室实现群聊和单聊,构建了简单的好友列表
利用UDP协议实现两台电脑之间的信息交流
关于UDP:将数据及源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k内;因无连接,是不可靠协议;不需要建立连接,速度快nn使用udp协议主要涉及到两个类:DatagramSocket,DatagramPacketnnDatagramSocket: 用于建立一个数据包的出口或入口,构造方法中有IP的都是用于接收方的nnDatagramPacket: 用于包装数据,构造方法中有I...
用基于TCP的网络编程实现多个用户登录功能的简单模拟
Person类:nn用来存储每个对象的用户名和密码信息nnnimport java.io.Serializable;nnpublic class Person implements Serializable {nn /**n * n */n private static final long serialVersionUID = 1L;n n n private String name;n p...
Java 聊天室的简单实现原理
先贴一个简单的思路,后续有时间再把代码写好贴上来。rnrn简单的JAVA聊天室:一般是使用Socket基于 C/S 架构,其设计的过程如下:rn1)服务器通过某个端口监听是否有客户端发送Socket链接请求。rn2)客户端向服务器端发送一个Socket链接请求。rn3)服务器端调用accept()方法接收客户端Scoket 并建立链接。rn4)通过Socket对象的getInputStream /
一台主机上开启多个mongo并测试mongo副本集
n n n 使用单独mongo命令载入相应mongo配置文件nmongod -f /etc/mongo.confnmongod -f /etc/mongo2.confnmongod -f /etc/mongo3.confn里面具体修改几个参数:npath: /var/log/mongodb/mongodxx.log;ndbPath: /var/lib/mongoxxx...
求助!!想要实现不同电脑上的两个软件通信
写了一个软件,在A电脑上做记录,然后希望在B电脑(不在同一局域网)上能通过该软件看到变动。望大神指教。。
java-python 多线程,多个客户端之间发送文件-2.python server java client
java通过利用TCP,Socket和ServerSocket的类,进行消息的传递,。通过while(true),形成点对点的单次通信。不过必须得等待对方的回复,才可以进行下一步。nn之后利用多线程,实现刷屏多次聊天。 利用这一点思路,将输入的字符串转化成文件。来进行文件的传递,以及多用户发送。nnnnnpackage tcom.tcp.test;nnimport java.i...
java TCP/IP实现简单的多人聊天功能
TCP/IP是可靠的网络协议,数据的传输需要服务端和客户端之间三次“握手”,比较适合文本等一些可靠性要求高的数据传输,但是它的效率较UDP低。下面通过一张图来简要说明使用 ServerSocket 创建 TCP 服务器端和使用Sock创建客户端通信的流程:rnrnrn这只是实现了单个服务端与客户端的通讯,要想实现与多个客户端的通讯,要在服务端的发送信息线程里把信息转发给各个客户端,在服务端里循环监
linux两个不同终端上的信息交流
在很多公司,环境比较压抑,别人不动,你页不好意思随意走动。遇到不会的问题,就用终端联系你的好基友吧........
java回顾之基于servlet的网页聊天室实现
继续上一次的介绍,这次直接介绍javaee的开发基础部分,servlet的使用nnnservlet是javaee的基础,所谓jsp也即是servlet的另一种显示而已,这里介绍这个小demo,可以局域网和朋友一起玩玩,聊天室还可以传输文件,可以直接使用的。nnn代码如下(最后我会给出打包地址,直接eclipse的javaee,tomcat环境就可以使用,另外这个包是乱码的,使用时直接忽
TCP报文段、UDP数据报、IP数据报区别
(1)TCP报文段(TCP segment)nnnTCP传输给IP的数据单元称作TCP报文段。nnsegment : part of sth separated or marked off from the other parts.n(数学解释:它是一个全集O的一个子集a)nnnTCP报文段:TCP协议是面向有连接的协议,“有连接”的意思是TCP协议需要维护后续数据的状态信息,例
socket实现客户端和客户端之间通信和聊天
1.实体类rnpackage edu.tcu.cn;nnimport java.io.BufferedReader;nimport java.io.IOException;nimport java.io.InputStreamReader;nimport java.io.PrintWriter;nimport java.net.Socket;nnpublic class User {nn priv
java简易多用户聊天室
java Swing写的一个小DemonServerimport java.io.BufferedReader;nimport java.io.IOException;nimport java.io.InputStreamReader;nimport java.io.PrintWriter;nimport java.net.ServerSocket;nimport java.net.Socket;
linux socket
嵌入式开发,基于linux的聊天室,可以实现多个用户同时在聊天室中进行交流.
聊天室用ajax实现在线人员列表
map集合用于存储在线人员列表服务器已启动就创建userMap集合user实体中,实现监听器,HttpSessionBindingListener的valueBound和valueUnBound用于监听用户是否登录成功,即是user是否和session绑定前台:利用Ajax...
java 简单聊天室(登陆,验证,聊天)
本程序提供登陆,调用数据库的账号密码进行验证,登陆聊天室,进行多线程通讯
python3 socket编程-实现两台机器的信息通信
两台机器实现通信的基本原理nn概念:网络传输协议有很多,列出常见的,以及socketnnnn协议n 该协议的场所n HTTPn 网站协议n SMTPn 邮件协议n DNSn 域名解析IP的协议n FTPn 上传和下载的协议n sshn 实现电脑远程连接n snmpn 网络监控n ICMPn ping包的n DHCPn IP分配的n 这些协议不...
多台电脑共用一个ssh密钥来访问被Ansible控制机器
多台电脑共用一个ssh密钥来访问被Ansible控制机器 本次操作选取142(master)和141(slavertwo)使用相同的ssh密钥访问140(slaverfour)机器。 一、142机器上操作 首先在142机器生成ssh Key放在其默认的目录下“~/.ssh”: # ssh-keygen -t rsa -C "root123@gmail.com"    (root123@gmail....
Java 基于Tcp/ip连接的多人交互聊天室(Socket编程)
项目说明: n本项目由三个.java文件(Client.java、Server.java、UI.java)和一个.jpg图片文件组成UI.java是负责界面的构成文件。本聊天室的界面极其简单。主要分为两个界面:第一个是启动时需要登陆的界面如下: n输入名字进去以后就可以直接聊天 n n n这个聊天室相当于群聊,每一个登陆进去的人发的信息,其他人都会收到。 n使用指南:1.运行Server.java文
Java NIO实现多个客户端之间的消息互发,客户端与服务器完整代码
服务器在JAVA上,客户端为C++,实现多人聊天消息转发,服务器也可以给客户端发送消息。附上项目完整源代码,client包负责消息发送,sensor包负责消息接收
Redis实战之多用户聊天室
多客户端之间的通信,可采用消息推送和消息拉取两种方法。所谓消息推送,即采用publish/subscribe模式,但该方法要求用户必须在线才能接收到消息;所谓消息拉取模式,即由接收端自己拉取存储在某种邮箱里的消息。数据结构1、群群ID计数器:(string)n ids:chatn群成员:(zset,包括群内所有成员及其拉取的最新消息ID)n chat:群ID Last_Message_ID 用户
java WebSocket实现简单的聊天室(包括群发和点对点聊天)
今天突然看到了WebSocket然后就网上找了一个例子,然后修改了下,实现了简单的聊天室,包括群聊和点对点聊天。
一台机器上安装zookeeper+kafka集群
版本:nUbuntu 14.04.1nnnnzookeeper-3.4.6nnkafka_2.10-0.10.1.0nnnnnn1.zookeeper配置n$  sudo mkdir -p  /opt/server/zookeeper/server1/datan$  sudo mkdir -p  /opt/server/zookeeper/server1/dataLo
使用JAVA编程实现多人聊天室(多线程实践)
程序可以实现多人聊天,并且效果和性能还算可以。而且每个客户端连接进服务器时,都会随机产生一个随机数作为自身的标志,避免通话过程中,分辨不清彼此,而导致交流效果不好。测试过程中一共连入了10个客户端进行程序稳定性的测试,程序运行结果稳定,符合实验预期结果,充分说明了程序的鲁棒性较强。
Flume案例:模拟两个agent之间传递消息的场景
模拟两个agent之间传递消息的场景说明:1.在hadoop1机器上有一个flume agent,通过exec监听tail命令输出的结果。 n2.新增的结果通过avro sink的方式下层到hadoop2:4141的avro source端。 n3.在hadoop2机器上有一个flume agent,通过avro source来接收下沉过来的数据。编写hadoop1上的通信配置文件在hadoop1上
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 在java上实现机器学习 java 学习交流群