网络编程-UDP程序聊天小程序

 1 package com.yyq;
 2
 3 import java.io.BufferedReader;
 4 import java.io.InputStream;
 5 import java.io.InputStreamReader;
 6 import java.net.DatagramPacket;
 7 import java.net.DatagramSocket;
 8 import java.net.InetAddress;
 9 import java.net.SocketException;
10
11 /*
12  * 编写一个聊天程序。有收数据的部分,有发送数据的部分,这两部分需要同时执行
13  * 那就需要用到多线程技术。一个线程收,一个线程发。
14  * 因为收和发动作是不一致的,所以
15  */
16 class Send implements Runnable{
17     private DatagramSocket ds;
18     public Send(DatagramSocket ds){
19         this.ds = ds;
20     }
21     public void run(){
22         try{
23             BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
24             String line = null;
25             while((line = bufr.readLine())!=null){
26                 if("88".equals(line)){
27                     break;
28                 }
29                 else{
30                     byte[] buf = new byte[1024];
31                     DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1237);
32                     ds.send(dp);
33                 }
34             }
35         }
36         catch(Exception e){
37             throw new RuntimeException("发送端失败!!");
38         }
39     }
40 }
41 class Rece implements Runnable{
42     private DatagramSocket ds;
43     public  Rece(DatagramSocket ds){
44         this.ds = ds;
45     }
46     public void run(){
47         try{
48             while(true){
49                 byte[] buf = new byte[1024];
50                 DatagramPacket dp = new DatagramPacket(buf,buf.length);
51                 ds.receive(dp);
52                 String ip = dp.getAddress().getHostAddress();
53                 String data = new String(dp.getData(),0,dp.getLength());
54                 System.out.println(ip+data);
55             }
56         }
57         catch(Exception e){
58             throw new RuntimeException("接受端失败!!");
59         }
60     }
61 }
62 public class ChatDemo {
63     public static void main(String[] args) throws SocketException {
64         DatagramSocket sendSocket = new DatagramSocket();
65         DatagramSocket receSocket = new DatagramSocket(1237);
66         new Thread(new Rece(sendSocket)).start();
67         new Thread(new Send(sendSocket)).start();
68     }
69 }
时间: 2024-11-10 01:09:56

网络编程-UDP程序聊天小程序的相关文章

【Python网络编程】多线程聊天软件程序

课程设计的时候制作的多线程聊天软件程序 基于python3.4.3 import socket import pickle import threading import tkinter import os import datetime import time try: import pymysql except: print("can't find pymysql") tcplocalport=8101 #TCP监听端口 tcpconnectport=8101 #TCP连接端口 u

黑马程序员 网络编程 UDP与TCP

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ----------------------/* 网络编程分为两种模式:TCP和UDP 连接互联网的计算机以亿计,为了唯一的标识出每台电脑,互联网就给每台电脑分配一个 唯一独立的ip地址,通过这个ip地址就可以进行计算机之间的数据交换 我们计算机交换的数据功能我们在java中把它封住成一个叫Socket的类, 简称套接字, 端口号:计算机数据的交换一般都是电脑上的程序来维护的,而电脑上又运

Netty学习——基于netty实现简单的客户端聊天小程序

Netty学习——基于netty实现简单的客户端聊天小程序 效果图,聊天程序展示 (TCP编程实现) 后端代码: package com.dawa.netty.chatexample; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEven

JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)

一  前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件,接着上次已经下载的部分文件继续下载.另外将程序名从JWebFileTrans更改为JDownload,并从github的utility repository中独立出来专门维护,后续会添加多线程.ftp下载等功能.JDownload的github链接请点击JDownload源代码 . 另外时隔三个月后

Netty 聊天小程序

这节讲解基于 Netty 快速实现一个聊天小程序. 一.服务端 1. SimpleChatServerHandler(处理器类) 该类主要实现了接收来自客户端的消息并转发给其他客户端. 1 /** 2 * 服务端处理器 3 */ 4 public class SimpleChatServerHandler extends SimpleChannelInboundHandler<String> { 5 public static ChannelGroup channels 6 = new Def

小程序版聊天室|聊天小程序|仿微信聊天界面小程序

仿微信聊天小程序weChatRoom案例,一款基于微信小程序开发的聊天室实战项目.很早之前就有开发过一个h5版聊天室,最近又在原先思路的基础上开发了个小程序版聊天室,功能效果非常接近微信聊天,实现了消息.表情发送,小程序表情解析,图片.视频上传预览,打赏.红包等微交互场景.整体界面风格及效果挺不错哒. ◆ 先睹为快 ◆ 项目中用到的弹窗插件,是自己开发的小程序弹窗组件wcPop: <!-- <>引入弹窗模板.Start --><import src="/utils/

c/c++ 网络编程 UDP 改变网卡的硬件地址

网络编程 UDP 改变网卡的硬件地址 在程序里动态改变网卡的硬件地址 1,取得网卡的硬件地址 #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <

c/c++ 网络编程 UDP 改变网关和网卡名字

网络编程 UDP 改变网关和网卡名字 在程序里动态改变网关和网卡名字 1,改变网卡名字 #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <net

c/c++ 网络编程 UDP 改变IP地址

网络编程 UDP 改变IP地址 在程序里动态改变主机的IP地址 1,改变ipv4的地址 #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netinet/in.h> #include <net