黑马程序员_网络编程之聊天程序
来源:互联网 发布:淘宝模特招聘 编辑:程序博客网 时间:2024/05/17 23:15
------- android培训、java培训、期待与您交流! ----------
聊天程序代码原理:
聊天程序是网络编程代码的核心部分,包括了全部的知识和概念。掌握了聊天程序就掌握了网路便成功。
package com.test.exam;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 需求:建立聊天程序
* @author 冯国强
*
*/
public class Question1 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//创建一个发送端
DatagramSocket ds1=new DatagramSocket();
//创建一个接收端
DatagramSocket ds2=new DatagramSocket(10000);
//创建一个接收端线程并启动
new Thread(new send(ds1)).start();
//创建一个接收端线程并启动
new Thread(new receive(ds2)).start();
}
}
class send implements Runnable{
private DatagramSocket ds;
public send(DatagramSocket ds){
this.ds=ds;
}
public void run() {
BufferedReader br=null;
try{
//创建一个键盘录入流
br=new BufferedReader(new InputStreamReader(System.in));
//读取键盘录入数据并发送
String line=null;
while((line=br.readLine())!=null){
//用读取数据创建发送数据包
byte[] buf=line.getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("127.0.0.1"),10000);
//发送端发送数据
ds.send(dp);
}
}catch (Exception e) {
throw new RuntimeException("发送端失败");
}finally{//释放资源
if(br!=null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class receive implements Runnable{
private DatagramSocket ds;
public receive(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);//receive是一个阻塞式方法
String ip=dp.getAddress().getHostAddress();
String content=new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+content);
}
}catch (Exception e) {
throw new RuntimeException("接收端失败");
}
}
}
- 黑马程序员_网络编程之聊天程序
- 黑马程序员_网络编程之简单的聊天程序
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 黑马程序员_网络编程之客户端
- 黑马程序员_网络编程之TCP
- loading黑马程序员之网络编程:聊天(3-1)
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 黑马程序员_网络编程
- 小米手机连接ubuntu adb调试
- 查看表空间使用情况的sql
- 电脑内存常见问题处理方法
- Sublime Text3常用快捷键
- LeetCode(109)Convert Sorted List to Binary Search Tree
- 黑马程序员_网络编程之聊天程序
- 二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配
- Ubuntu下为Firefox安装Adobe Flash Player
- 各种linux系统开启关闭防火墙的命令
- 黑马程序员_String
- poj 1155 TELE (树形DP+优化)
- 解决error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No su
- 可惜我是水瓶座 (文/猫猫)
- 黑马程序员_java基础加强之枚举