Socket 聊天程序 发送端

Socket 聊天程序 发送端
2010年12月24日
  //发送端
  package socket1;
  import java.io.*;
  import java.net.*;
  import java.text.*;
  import java.util.*;
  /*
  * 聊天程序
  * 利用多线程 Runnable 复写 run方法
  * 制定端口 9999 端口进行通信
  * 发送端 方案
  * 1.首先DatagramSocket 创建发送端
  * 2.需要描述所说的内容 一般都是键盘录入的内容 所以 是(读取键盘录入) 字符--->字节
  * BufferedReader bufr=BufferedReader(new OuputStreamReader(System.in));
  * 3.进行信息打包 将所录入的文件信息 打包成数据 DatagramPacket (数据包)
  * 对于发送数据包 有几大指明 参数 1字节数组2字节数组长度 3对方主机IP地址 ,对方IP端口好
  * 4.发送
  *
  * 注意 在过程中的异常情况 信息打印在 C:\\Exception_log.txt 目录里边!
  * ok!
  */
  public class FS implements Runnable {
  //接收制定的 发送端
  private DatagramSocket ds;
  FS(DatagramSocket ds)
  {
  this.ds=ds;
  }
  //复写run方法
  BufferedReader bufr=null;
  DatagramPacket dp;
  public void run()
  {
  //发送端口已经确立
  try
  {
  //键盘录入数据
  BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  //现在又数据了,从缓冲区读取数据
  String line;
  while((line=bufr.readLine())!=null)
  {
  //将数据打包
  if(line.equals("再见"))
  break;
  dp=new DatagramPacket(line.getBytes(),line.getBytes().length,InetAddress.getByName("192.168.0.255"),9999);
  ds.send(dp);
  }
  }
  catch(Exception e)
  {
  //备份文件 需要时间的处理
  /*
  * 一看到跑出异常文件 就是用 printStream 因为他接收一个OutputStram 类型参数
  * 1.建立时间
  * 注意 SimpleDateFormat 是java.Text包中的 new Date() java.Util包中
  * 2.建立个文件
  *
  */
  //建立时间
  String datestr=new SimpleDateFormat("yyyy年MM月dd日-kk:mm:ss").format(new Date());
  PrintStream ps;
  try {
  ps=new PrintStream(new FileOutputStream("c:\\Exception_log.txt"));
  //写一些东西
  ps.write((datestr+"-------------").getBytes());
  //将内存堆栈中的信息 打印到 文件里
  e.printStackTrace(ps);
  //修饰文本末尾
  ps.write("-------------------------------------------------".getBytes());
  ps.close();
  }catch(Exception ex)
  {
  throw new RuntimeException("文件写入失败!");
  }
  }
  finally
  {
  //安全退出
  try {
  if(bufr!=null)
  {
  bufr.close();
  }
  }
  catch (Exception e2)
  {
  throw new RuntimeException("写入流关闭异常");
  }
  }
  }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值