目的
今天的学习关于面对网络而言的。众所周知。网络在如今的大环境下是不可逆的主流,而网络无外乎服务器,客户端,数据库等主要部分,今天实现了不同计算机的交互,进行聊天操作,使用 Java 实现一个简单的聊天程序, 实现服务器端接收到客户端发来的消息, 使用了java.net.socket包. 通过socket 实现 client — server 之间的通讯.。涉及的知识主要有多线程以及Scoket类使用。话不多说,Start!
运用知识
-
IP地址
-
客户端简单实用
-
多线程实现对聊
-
使用继承IOException类
过程
-
学习笔记
/**
- 网络编程
- 在两台不同的计算机之间实现数据传输
1.qq聊天
2.网易app 刷新界面
3.打开浏览器 网页 www.baidu.com
- 客户端:手机app 浏览器 桌面qq 用户使用的平台
- 服务器端:存储、处理数据
- URL:统一的资源定位
- www.baidu.com: 域名 表示一台网络中的电脑
ip地址 唯一标识某一台电脑 32位——>4部分 8字节
172.20.10.15<-->www.baidu.com
- DNS服务器 域名解析
- IP地址唯一标识一台电脑
- 端口号唯一标识电脑上正在运行的一个程序
- 网络中数据传输 Socket类 客户端 ServerSocket 服务器端
*/ -
直接步入主题,开始写/demo
要完成这个demo,实现服务器与客户端对话,首先要有客户端和服务器。对其的要求是,在其中一方的字符能实时显示在另外一方,同时可以实现交互。那么就要有服务器Server以及客户端Client
- 客户端Client类代码:
class Client1{
public static void main(String[] args) throws IOException {
//连接服务器 获取socket
Socket socket = new Socket("127.0.0.1",8080);
//创建服务器端对应的输入流 用于接收服务器端发来的数据
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(br.readLine());
//向服务器端发送文件(图片)
//1.将文件写入到内存里
String path = "C:\\Users\\myk的小老弟\\Desktop\\ps素材\\feker.jpg";
FileInputStream fis = new FileInputStream(path);
//2.创建字节流 outputStream
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
byte[] buf = new byte[1024];
int len = -1;
while ((len = fis.read(buf)) != -1){
bos.write(buf,0,len);
}
socket.shutdownOutput();
}
}
- 服务器类代码:
class Server1{
public static void main(String[] args) throws IOException {
//创建服务器端的ServerSoket
ServerSocket ss = new ServerSocket(8080);
//监听客户端连接
//当有客户端来连接这个服务器 就可以得到对应的socket
//当没有客户端来连接 服务器一直在这里等待
Socket socket = ss.accept();
//创建客户端对应的输出流 用于向这个客户端发送数据
PrintStream ps = new PrintStream(socket.getOutputStream());
ps.println("连接成功 可以发数据了!");
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
String path = "C:\\Users\\myk的小老弟\\Desktop\\杂文档";
FileOutputStream fos = new FileOutputStream(path);
byte[] buf = new byte[1024];
int len = -1;
while((len = bis.read(buf)) != -1){
fos.write(buf,0,len);
}
}
}
-
效果如下
1.运行服务器:
2.运行客户端:image.png
总结
具体的话,服务器和客户端是分开电脑分别实现,只要地址以及端口正确就能实现交互。多人交互我还没理清楚,继续加油