多线程聊天
2015-09-07 00:18
344 查看
package com.phone.week5.day5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPSendThread extends Thread{
}
package com.phone.week5.day5;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPReceiveThread extends Thread{
}
package com.phone.week5.day5;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPClient1 {
}
package com.phone.week5.day5;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPClient2 {
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPSendThread extends Thread{
private DatagramSocket ds; private InetAddress ia; private int port; public UDPSendThread(DatagramSocket ds, InetAddress ia, int port) { super(); this.ds = ds; this.ia = ia; this.port = port; } @Override public void run() { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true){ try { String line= br.readLine(); byte b[] = line.getBytes(); DatagramPacket dp = new DatagramPacket(b, b.length, ia, port); ds.send(dp); } catch (IOException e) { e.printStackTrace(); } } }
}
package com.phone.week5.day5;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPReceiveThread extends Thread{
private DatagramSocket ds ; public UDPReceiveThread(DatagramSocket ds) { super(); this.ds = ds; } @Override public void run() { //创建一个接收的数组 byte b[] = new byte[1024]; //创建一个接收的数据包 DatagramPacket dp = new DatagramPacket(b, b.length); while(true){ try { ds.receive(dp); String str = new String(dp.getData(), 0, dp.getLength()); System.out.println(str); } catch (IOException e) { e.printStackTrace(); } } }
}
package com.phone.week5.day5;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPClient1 {
public static void main(String[] args) { try { DatagramSocket ds = new DatagramSocket(9999); new UDPReceiveThread(ds).start(); new UDPSendThread(ds, InetAddress.getByName("localhost"), 5555).start(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } System.out.println("客户1启动了"); }
}
package com.phone.week5.day5;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPClient2 {
public static void main(String[] args) { try { DatagramSocket ds = new DatagramSocket(5555); new UDPReceiveThread(ds).start(); new UDPSendThread(ds, InetAddress.getByName("localhost"), 9999).start(); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } System.out.println("客户2启动了"); }
}
相关文章推荐
- java学习之三
- C++ template overload
- Shell基础之-grep命令
- 2015.8.30——张佳莉
- Ember.js 入门指南——目录
- Ember.js 入门指南——目录
- HDU 1025 Constructing Roads In JGShining's Kingdom(LIS经典题)
- const、static、extern三个关键字
- java 缓冲字符流 及 JAVA
- struts.xml详解
- 题目:单词接龙
- 找出身高差最小的两个人
- 【排序算法之】Shell排序和插入排序
- iOS开发之UI基础--纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 题目:单词切分
- 菜鸟学matlab之智能算法(2)——————————BP神经网络算法
- Raspberry Pi Kernel Compilation 内核编译官方文档
- 移动应用网络优化
- 题目:区间求和 I
- Uva101-STL模拟