Java制作网络聊天室(section1)
来源:互联网 发布:潘多拉mac模拟 编辑:程序博客网 时间:2024/06/04 11:10
java写聊天室需要用到多线程、IO(输入输出)、网络编程,对此也有初步的认识。
一、多线程
概念:多线程是指一个程序中有多条并发执行的线索,每条线索都被称作一个线程,他们交替执行,彼此间可以通信。
在写聊天室时用户用输入和输出的功能,如果输入和输出都写在主函数没有使用线程,那么程序可能因为等待输入而阻塞,无法输出消息,所以需要用多线程来实现。
注:Java中的多线程是一种抢占机制而不是分时机制。抢占机制指的是有多个线程处于可运行状态,但是只允许一个线程在运行,他们通过竞争的方式抢占CPU。
线程的创建
Thread chaThread = new Thread(){
public void run() {
//run方法中运行的内容不会影响主函数的运行
};
};
二、网络编程
在写聊天室时客户端之间信息传输需要有个中介服务器,通过服务器来传输信息。
服务器端创建服务器
ServerSocket sc = new ServerSocket(port);//port为端口
Socket connect =sc.accept();//Socket类对象为服务器与客户端的连接通道,accept()方法是请求客服端与服务器的连接
客户端创建连接服务器通道
Socket connect = new Socket(host,port);//创建与服务器的连接,参数为ip地址(string)和端口(int)
三、IO输入输出
在写聊天室时需要对服务器和客户端之间进行数据传输,这就需要用到io(输入输出)。
在io包中有字节流的输入输出类分别为java.io.InputStream和java.io.OutputStream
InputStream中有read()方法读取输入内容(每次读一个字节),OutputStream中有whrite(byte[] b)方法来输出b字节数组。
下面程序是用IO对桌面文件的复制粘贴
package com.huaxin.IO;import java.io.FileInputStream;import java.io.FileOutputStream;public class Copy {public static void main(String[] args) throws Exception{Copy copy = new Copy();copy.copyPaste("C:\\Users\\Keen\\Desktop\\类图.png","C:\\Users\\Keen\\Desktop\\类图_副本.png");}public void copyPaste(String srcPath,String destPath)throws Exception//复制文件的方法(复制文件的路径,目的文件的路径){FileInputStream fis = new FileInputStream(srcPath);//创建文件输入流对象FileOutputStream fos = new FileOutputStream(destPath);//创建文件输出流对象int data = fis.read();//第一次读并记录内容//边读边写while(data!=-1){fos.write(data);data = fis.read();}System.out.println("OK");//关闭文件输入输出流fis.close();fos.close();}}
- Java制作网络聊天室(section1)
- 网络聊天室(Java)
- JAVA网络聊天室程序
- Java网络聊天室GUI
- 【JAVA】多线程网络通信---聊天室
- 基于java网络聊天室---前言
- 基于java网络聊天室--服务器端
- 基于java网络聊天室--客户端
- Java—网络编程实现UDP聊天室(局域网)
- UDP协议制作的GUI聊天室(java)
- 【UNet】初识Unity Network,制作一个简单的网络聊天室
- JAVA聊天室(2)
- java网络编程之聊天室客户端(二)
- JAVA网络聊天室的设计与实现
- 06 java GUI 网络编程:图形界面聊天室
- Java Web入门之网络聊天室
- Java WebSocket实现网络聊天室(群聊+私聊)
- Java的网络编程之聊天室功能
- 蓝桥杯 算法训练 乘积最大(动态规划)
- docker 背后的内核知识:cgroup机理
- J2EE搭建Dynamic web SpringMVC工程404错误分析(三)
- PLSQL怎样导出oracle表结构和数据
- Boost.Aiso概述 核心概念和功能1
- Java制作网络聊天室(section1)
- CentOS7使用传统的网卡命名
- 学习AJAX心得体会
- 【bzoj1101】[POI2007]Zap
- 汇编器构造
- Quartus II 之常见问题(二)
- Linux 中task_struck
- Hadoop基础教程-第1章 环境安装配置(1.1 安装VMware)
- 学习记录 有关 网络动力学