java 网络编程(四)----UDP进阶篇聊天小程序
设计要求:单线程模式,客户端只发送数据,数据的来源为键盘录入,服务器端只接收数据,当客户端发送886的时候,客户端和服务器端都退出。
1. 发送端:
public class Send implements Runnable{private DatagramSocket ds;public Send(DatagramSocket ds)
{
this.ds= ds;
}
@Override
try {
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String lines = null;
while((lines=bufr.readLine())!=null)
{
byte[] buf=lines.getBytes();
DatagramPacket dp= new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.5.255"),10001);
ds.send(dp);
if("886".equals(lines))
break;
}
ds.close();
} catch (Exception e) {
}
}}
2. 接收端:
public class Reci implements Runnable {
private DatagramSocket ds;
public Reci(DatagramSocket ds)
{
this.ds= ds;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
while(true){
byte[] buf=new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);
String ipString=dp.getAddress().getHostAddress();
int port =dp.getPort();
String data= new String(dp.getData(),0,dp.getLength());
System.out.println("ip :"+ipString+"port :"+port+"data :"+data);
if(data.equals("886"))
{
System.out.println(ipString+"...退出聊天室");
}
}
} catch (IOException e) {
}
}
}
3. 单线程进程启动
public class ChatMultiThreadDemo {
public static void main(String[] args) throws SocketException {
DatagramSocket send = new DatagramSocket();
DatagramSocket reci = new DatagramSocket(10001);
new Thread(new Send(send)).start();
new Thread(new Reci(reci)).start();
}
}
java 网络编程(四)----UDP进阶篇聊天小程序的更多相关文章
- Java 网络编程 --基于UDP实现一对一聊天功能
UDP 基本流程: UDP发送端基本流程: 1.使用DatagramSocket 指定端口 创建发送端 2.准备数据 一定转成字节数组 3. 封装成DatagramPacket 包裹,需要指定目的地 ...
- java 网络编程-tcp/udp
--转自:http://blog.csdn.net/nyzhl/article/details/1705039 直接把代码写在这里,解释看这里吧:http://blog.csdn.net/nyzhl/ ...
- java网络编程(4)——udp实现聊天
UDP可以实现在线聊天功能,我这里就是简单模拟一下: 发送端: package com.seven.udp; import java.io.BufferedReader; import java.io ...
- java 网络编程基础 UDP协议DatagramSocket,MulticastSocket 实现局域网聊天软件(Server + Client模式)
开发思路: 服务端两个Socket: UDP的DatagramSocket接收客户端消息. 广播multicastSocket 发送广播消息 客户端一个Socket: multicastSocke ...
- java 网络编程基础 UDP协议的Socket:DatagramSocket;广播Socket:MulticastSocket
什么是UDP协议: UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket 但这两个 Socket之间并没有虚拟链路,这两个Socket只是发送.接收数据报的对象.Java 提供了 ...
- Java网络编程——TCP/UDP
UDP:面向无连接 ☆ 将数据及源地址和目的地址封装成数据包中 ☆ 每个数据报的大小限制在64K ☆ 不可靠协议 ☆ 不需要建立连接,速度快 TCP:面向有连接 ☆ 建立连接,形成传输数据的通道 ☆ ...
- 20145215实验五 Java网络编程及安全
20145215实验五 Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 本次实验我的结对编程对象是20145208蔡野,我负责编写客 ...
- 20145337实验五Java网络编程及安全
20145337实验五Java网络编程及安全 实验内容 掌握Socket程序的编写 掌握密码技术的使用 设计安全传输系统 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器 ...
- 20145122《 Java网络编程》实验五实验报告
实验名称 Java网络编程 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 结对小伙伴 20145120黄玄曦 博客地址:http://www.cnblo ...
随机推荐
- C++ Primer Pluse_6_课后题
#include <iostream> #include <cctype> #include <array> #include <string> #in ...
- 转:自定义ASP.NET MVC Html辅助方法
在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么 ...
- php mysql连接例子
<?PHP @$conn = mysql_connect("127.0.0.1","root",""); //返回false或reso ...
- 配置Tomcat6的管理用户
在Tomcat上发布war之前需要配置一个管理用户以进入上传页面,而配置就是通过修改/usr/local/tomcat6/conf/tomcat-users.xml这个文件进行的.下面是修改后的文字: ...
- TermServDevices报错导致服务器死机(远程服务使用者必读)
事件类型: 错误 事件来源: TermServDevices 事件 ID: 1111 描述:打印机 !!192.168.99.6!HP LaserJet 3050 Series PCL 5e 所需的驱 ...
- iOS 集成银联支付
下载地址:https://open.unionpay.com/upload/download/Development_kit85427986.rar 其实我找了半个小时 也不知道怎么就下载好了 这个我 ...
- rm 命令(转)
昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令.rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所 ...
- PHP文件缓存与memcached缓存 相比 优缺点是什么呢【总结】
如果不考虑其他任何问题,只比较速度的话,那肯定是mem快,但他们各有优缺点.文件缓存优点:1.由于现在的硬盘都非常大,所有如果是大数据的时候,放硬盘里就比较合适,比如做一个cms网站,网站里有10万篇 ...
- python 编码与解码 decode解码 encode 编码
>>> '无' #gbk字符'\xce\xde'>>> str1 = '\xce\xde'>>> str1.decode('gbk') # ...
- 12C对ASM rebalance操作的优化
如果在执行"alter diskgroup"操作.或在添加.删除磁盘而引发的隐式rebalance的时,没有指定power选项,rebalance操作会使用初始化参数asm_pow ...