黑马程序员--写一个自己和自己聊天的小程序
2011-11-30 22:24
363 查看
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
因为聊天内容允许出现误差,并且要求速度快, 这里就要用到UDP通信协议,因为有收数据的部分也有发数据的部分,这两部分要同时执行,就要用到多线程技术,一个线程收一个线程发,因为收和发动作不一致,所以定义2个run方法,
import java.io.*;
import java.net.*;
//输出端
class Send implements Runnable
{
private DatagramSocket ds;
public Send (DatagramSocket ds)
{
this.ds=ds;
}
public void run()
{ try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //获取键盘输入
String line = null;
while ((line=br.readLine())!=null)
{
if("886".equals(line))
break;
byte[] buf =line.getBytes();
DatagramPacket dp =
new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10001); //将信息封装成包
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 date = new String(dp.getData(),0,dp.getLength());
System.out.println(ip+""+date);
}
}
catch (Exception e)
{
throw new RuntimeException("接收失败");
}
}
}
class ChatDemn
{
public static void main(String[] args)throws Exception
{
DatagramSocket sendsocket = new DatagramSocket();
DatagramSocket receivesocket = new DatagramSocket(10001);
new Thread(new Send(sendsocket)).start();
new Thread(new Rece(receivesocket)).start();
}
}
通过写这个小程序,出现了很多单词拼写错误,特别是方法的大小写问题,类名接口名多单词组成 所有单词 首字母大写;变量名 多单词组成时,首字母小写,往后每个单词首字母大写。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
详细请查看:http://edu.csdn.net/heima
相关文章推荐
- 黑马程序员——一个最基本的小程序以及自己对Java的认识
- 记录自己做的一个简单的局域网聊天程序
- 黑马程序员 用UDP协议在dos命令行里模拟一个聊天程序
- 自己写的一个简单的蓝牙聊天程序
- 自己编写的一个基于java的socket网络聊天程序
- 分享一个C#编写简单的聊天程序(详细介绍)
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 第四题(迅雷笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 不用挂钩绕过 Klister 0.4 ——运行一个自己控制的线程调度程序
- Java 网络 UDP 一个局域网下的聊天小程序
- 一个简易的聊天程序(Socket)
- 一个java局域网聊天的程序
- Udp编写一个聊天程序(线程方式)
- 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序
- 自己学习JSP写的一个小程序
- 代码实现从我的主窗体里打开另外一个应用程序,并且让该程序像自己的MDI子窗体那样在父窗体的范围内显示
- 自己写的一个较大的上位机程序,不知道大家感觉怎么样
- java网络编程实现一个聊天程序
- 为自己的.net程序配置一个log4net
- 一个自己编写的象棋程序,可实现走棋谱(如炮二平五),工程完成度%96,跟大家分享一下,下一步要做残局,欢迎交流