通信小结

通信学了就会知道他其实就是客户端与服务器之间的连接,关键代码也就是:
创建一个服务器,在创建与之对应的客户端。
代码示例:
1.服务器方:
1.创建一个绑定端口的服务器
ServerSocket server = new ServerSocket(2012);
2.等待客户端的接入
Socket client = server.accept();
2.客户端方:创建一个客户端
Socket client = new Socket("",2012);//引号中填入你想连接机子的IP地址。
其次就是注意我们使用的流对象
流对象是我们通过client对象获取的
代码://获取输入输出流对象
OutputStream ous = client.getOutputStream();
IntputStream ins = client.getInputStream();
注意:如果一方使用了其他的流对象(如:数据流对象)另一方也要使用与之对应的流对象。
其实,就我目前了解,实现通信的关键就是以上,对了,在使用流对象时,很容易阻塞,注意异常的处理就可以了。
注:客户端与服务器代码类似,可先写一方的代码,然后再copy即可。

下面我们来看一下简单网络画板的实现过程。
实现内容:
客户端可接受服务器发出的图像。

以前,我们已经实现了简单的仿XP画板,网络画板只需要我们去实现不同机器上画板的通信即可。实现两台机子的通信很简单,但是其他功能代码就要靠自己了。
也就是我们需要使你画板上的图像在我的画板上就可呈现。

具体实现过程;(在一台电脑上,以传直线为例)
1.实现一个简单的画图板
2.创建服务器,写入服务器接受和发送图像的方法
3.创建客户端,写入服务器接受和发送图像的方法
代码:
客户端方面;

画图界面:
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;

import javax.swing.JFrame;

public class Draw_Frame extends JFrame {
// 声明四个坐标变量
private int x1, x2, y1, y2;
// 声明一个画布
static Graphics g;

public void init() {
// 窗体的属性
this.setTitle("我的画板1.2");
this.setSize(600, 500);
this.setDefaultCloseOperation(3);
BorderLayout f1 = new BorderLayout();
this.setLayout(f1);

this.setVisible(true);
g = this.getGraphics();
MouseAdapter ma = new MouseAdapter() {

public void mousePressed(java.awt.event.MouseEvent e) {
x1 = e.getX();
y1 = e.getY();

}

public void mouseReleased(java.awt.event.MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
g.drawLine(x1, y1, x2, y2);
Server.send_msg(x1, y1, x2, y2);

}

};

this.addMouseListener(ma);
}

}

客户端:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class client {
private static Socket client;
private static InputStream ins;
private static OutputStream ous;

/**
* 创建一个端口
*/
public static void createClient(int port) {
try {
client = new Socket("localhost", port);
System.out.println("创建客户端成功!");
while (true) {
recive_msg();
}

} catch (UnknownHostException e) {

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private static void recive_msg() {
try {
ins = client.getInputStream();
DataInputStream dis = new DataInputStream(ins);
int x1 = dis.readInt();
int y1 = dis.readInt();
int x2 = dis.readInt();
int y2 = dis.readInt();
Draw_Frame.g.drawLine(x1, y1, x2, y2);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static void send_msg(int x1, int y1, int x2, int y2) {
try {
ous = client.getOutputStream();
DataOutputStream dos = new DataOutputStream(ous);
dos.writeInt(x1);
dos.writeInt(y1);
dos.writeInt(x2);
dos.writeInt(y2);
System.out.println("发送成功!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main(String[] args) {
Draw_Frame df = new Draw_Frame();
df.init();
createClient(2012);

}

}

服务器与客户端类似关键在:
public static void createServer(int port){
try {
ServerSocket server = new ServerSocket(port);
System.out.println("创建服务器成功!");
client = server.accept();
System.out.println(client.getInetAddress());

while (true) {
recive_msg();
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值