聊天Demo

简单聊天功能,没有界面

思路:创建两个线程,分别为接收线程和发送线程,由主函数开启

1、发送

  a、接收soket

  b、建立一个数据包,并将键盘录入的数据封装到数据包内

  c、调用socket的发送函数,将数据包发送给10000端口

2、接收

  a、接收socket

  b、建立接收数据包及缓冲区

  c、调用socke的接收函数,监听1000端口

  b、将接收到的ip地址及信息提取出来

代码如下:  

import java.net.*;
import java.io.*;
class Send implements Runnable
    {
        private DatagramSocket ds;
        public Send(DatagramSocket ds)
        {
            this.ds=ds;
        }

        public void run()
        {
            try{
                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                String line = null;
                while((line=bufr.readLine())!=null){
                if("886".equals(line))
                    break;
                byte[] buf = line.getBytes();
                DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.3.255"),10000);
                ds.send(dp);

                }

            }
            catch(Exception e){
                throw new RuntimeException("fasong");

            }
        }
    }

class Rece implements Runnable
    {
        private DatagramSocket ds;
        public Rece(DatagramSocket ds)
        {
            this.ds=ds;
        }

        public void run()
        {
            try{
            while(true){
                byte[] buf =new byte[1024];
                DatagramPacket dp =  new DatagramPacket(buf,buf.length);
                ds.receive(dp);
                String ip = dp.getAddress().getHostName();
                String data = new String(dp.getData(),0,dp.getLength());
                System.out.println(ip+": "+data);
            }}
            catch(Exception e){
                throw new RuntimeException("jieshou");

            }
        }
    }

class ChatDemo
{
        public static void main(String[] args)throws Exception
        {
            DatagramSocket sendSocket = new DatagramSocket();
            DatagramSocket receSocket = new DatagramSocket(10000);
            new Thread(new Send(sendSocket)).start();
            new Thread(new Rece(receSocket)).start();
        }
    }
时间: 2024-10-07 21:58:55

聊天Demo的相关文章

基于Node.js + socket.io实现WebSocket的聊天DEMO

原文摘自我的前端博客,欢迎大家来访问 http://hacke2.github.io 简介 最近看Node.js和HTML5,练手了一个简易版的聊天DEMO,娱乐一下 为什么需要socket.io? node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一, 为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验, 于是socket.io诞生. 简答来说socket.io具体以下特点: 1.socket.io设计的目标是支持任何的浏览器

网页版WebRTC多人聊天Demo

网页版WebRTC多人聊天Demo 本文基于Codelab中step7,在其基础上作简单修改,使其支持多人视频通讯,本文暂时只支持星状结构三人聊天,多人聊天可以在基础上扩展,原理相同. 一.源码分析 该工程包括三个文件:server.js,main.js,index.html. 1.server.js if (numClients == 0){ socket.join(room); socket.emit('created', room); } else if (numClients == 1)

高并发MINA框架,网络编程(SOCKET)实现,简单的网络聊天DEMO

服务端 和http://blog.csdn.net/simonchi/article/details/40613923   文章类似 Apache MINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序.它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步API 对JAVA的SOCKET做了一层包装 Apache MINA 通常可被称之为: NIO 框架库: 一篇好的关于MINA详解的文章推荐:  http://www.

聊天demo SignalR

1首先这个demo是针对 net版本是4.5的  SignalR   获取的是2.2的 2新建一个mvc项目 3  Nuget  搜索 SignalR   安装如图的一项 4新建一个 集线器类 修改新建的 类 [HubName("demo")] public class ChatHub:Hub { public void Send(string name, string message) { // Call the addNewMessageToPage method to updat

使用GatewayWorker 开发个即时聊天demo

前言: 上手册以示尊重:https://www.kancloud.cn/walkor/gateway-worker/326138: https://www.cnblogs.com/fuqiang88/p/5956363.html 先介绍下GarewayWorker吧,GarewayWorker是基于Workerman开发的一个框架.讲通俗就是用来长连接的. 那么又为什么要长连接呢? 通常来说客户端与服务端的联系就是请求响应.由客户端发起请求给服务端,然后在服务端接收请求并响应将资源发送给客户端,

Spring WebSocket简单入门测试Demo(网页及时聊天)

说明 本demo运行的环境是:ssm框架 + tomcat8 + jdk7+,由于只是demo.很简陋.能运行调式通过就行,再在此基础上进行扩展研究. 在网上看了很多列子.对于没有接触过websocket的人来说.真的是看不懂.本文列子应该算是比较简单的. Spring WebSocket API的核心接口是WebSocketHandler.我把它叫做消息处理中心. 其他的详细解说可以参考别人的博客 <servlet-mapping> <servlet-name>springmvc

[iOS UI进阶 - 2.1] 彩票Demo v1.1

A.需求 1.优化项目设置 2.自定义导航栏标题按钮 3.多版本处理 4.iOS6和iOS7的适配 5.设置按钮背景 6.设置值UIBarButtonItem样式 B.实现 1.项目配置 (1)程序启动期间隐藏状态栏 (2)程序启动完成显示状态栏 AppDelegate: 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

我做的一个websocket的demo(php server)

notice: 通过命令行执行php文件  如 php -q c:\path\server.php 通过本地web服务器访问 http://127.0.0.1/websocket/index.php即可 notice: 需要php5.3或以上的执行环境,和一个web服务器如apache浏览器需支持html5 web socket这里监听 socket端口 9505,如遇到端口被占用可能需要在这两个文件内修改端口或者杀死相应端口进程 页面手机上看起来比pc上好看! 1.客户端代码 html文件 1

java学习笔记之TCP实现的简单聊天

简单聊天Demo 使用tcp协议实现的简单聊天功能(非常简单的) 思想:使用2个线程,一个线程是用来接收消息的,另一个线程是用来发消息的. 客户端Demo代码: 1 public class SendDemo { 2 public static void main(String[] args) throws Exception{ 3 Socket socket= new Socket(InetAddress.getLocalHost(),8888); 4 SendImpl sendImpl= n