网络编程(UDP-聊天)

原创 2013年12月03日 18:07:19
import java.io.*;
import java.net.*;
/*
编写一个聊天程序。
有收数据的部分,和发数据的部分。
这两部分需要同时执行。
那就需要用到多线程技术。
一个线程控制收,一个线程控制发。

因为收和发动作是不一致的,所以要定义两个run方法。
而且这两个方法都要封装到不同的类中。
*/
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("172.28.1.135"),10002);

                ds.send(dp);
            }
        }
        catch (Exception e)
        {
            throw new RuntimeException("发送端失败");
        }
    }
}

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().getHostAddress();

                String data = new String(dp.getData(),0,dp.getLength());

                System.out.println(ip + ":" + data);
            }
        }
        catch (Exception e)
        {
            throw new RuntimeException("接收端失败");
        }
    }
}


class ChatDemo
{
    public static void main(String[] args)throws Exception
    {
        DatagramSocket sendSocket = new DatagramSocket();
        DatagramSocket receSocket = new DatagramSocket(10002);

        new Thread(new Send(sendSocket)).start();
        new Thread(new Rece(receSocket)).start();
    }
}

Java-网络编程(UDP-聊天)

/* 编写一个聊天程序。 有收数据的部分,和发数据的部分 这两部分需要同时执行 那就需要用到多线程技术 一个线程控制收,一个线程控制发 因为收和发动作是...
  • shenqingxiaojian
  • shenqingxiaojian
  • 2014年08月07日 09:01
  • 443

UDP-聊天

/* 编写一个聊天程序。 有收数据的部分,和发数据的部分 这两部分需要同时执行 那就需要用到多线程技术 一个线程控制收,一个线程控制发。 因为收和发动作是不一致的,所以要定义两个r...
  • runHome
  • runHome
  • 2017年04月06日 01:01
  • 88

黑马程序员_(UDP-聊天)

---------------------- android培训、java培训、期待与您交流! ---------------------- import java.io.*; import ja...
  • a87848180
  • a87848180
  • 2012年06月12日 09:09
  • 83

Linux网络编程之聊天程序(TCP协议之select)

服务器端:server.c #include #include #include #include #include #include #include #include...
  • qq_21792169
  • qq_21792169
  • 2016年04月14日 18:49
  • 4052

利用多线程与网络编程编写的实时聊天小程序

客户端代码: package Oracle; import java.io.BufferedReader; import java.io.IOException; import java....
  • xiongyi111222
  • xiongyi111222
  • 2017年09月01日 22:09
  • 94

嵌入式Linux网络编程 之 多线程聊天

题目要求:编写一个网络聊天程序,要求采用数据流的套接口编程 程序分为服务端与客户端 服务端最大同时连接10个客户端 服务端可以响应多个客户端的请求,每个客户端直接可以相互通信,由服务器实现转发。服务器...
  • u011467781
  • u011467781
  • 2015年08月24日 17:45
  • 952

UDP-聊天-多线程实现

/*UDP-聊天-多线程实现 编写一个聊天程序。 有收数据的部分,和发数据的部分。 这两部分需要同时执行。 那就需要用到多线程技术。 一个线程控制收,一个线程控制发.因为收和发动作是不一致的,所以要定...
  • blacop
  • blacop
  • 2016年08月12日 23:46
  • 818

Java网络编程以及简单的聊天程序

网络编程技术是互联网技术中的主流编程技术之一,懂的一些基本的操作是非常必要的。这章主要讲解网络编程,UDP和Socket编程,以及使用Socket做一个简单的聊天软件。...
  • peace1213
  • peace1213
  • 2015年12月04日 18:09
  • 5449

网络编程(五)--仿QQ聊天程序

前面几天刚学学了TCP、UDP等协议,因此这里算是一个小小总结项目,仿照QQ用C/S模式来做一个项目! 首先做了一个设计: 在服务器端 用一个HashMap 维护所有用户相关的信息,从而能够保证和所...
  • SHYLOGO
  • SHYLOGO
  • 2017年08月17日 21:23
  • 280

Qt学习心得之网络编程简单的局域网聊天服务端建立

学而不思则罔,思而不学则殆。学习和思考是相辅相成的,通过这几天对网络编程的学习,收获颇丰。接下来我将利用Qt做的一个以TcpIp协议为传输方式的简单的局域网聊天服务端与大家分享下:   首先谈谈我个人...
  • u013144441
  • u013144441
  • 2015年07月26日 10:26
  • 900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:网络编程(UDP-聊天)
举报原因:
原因补充:

(最多只允许输入30个字)