12-网络编程

CS应用程序在双端开发过程中实现服务器端和客户端之间数据的传输

  • 请求request

  • 响应response

网络编程三要素

协议

UDP协议

无连接通信协议,客户端与服务器端并没有真正的建立逻辑连接,不需要验证对方是否在线

缺点:安全性低,数据完整性低

优点:消耗资源少,传输效率高。

TCP/IP协议

建立客户端与服务器端的逻辑连接,需要通过三次握手确定对方是否在线才可传输数据

三次握手

  1. 客户端向服务器端发送请求

  2. 服务器端回写响应信息给客户端

  3. 客户端向服务器发送真正请求

缺点:消耗资源多,耗时长

优点:保证数据安全和准确

IP地址

每一台电脑在互联网络中的唯一标识,确认服务器所在电脑地址

本机IP表示:localhost - 127.0.0.1

端口号

电脑中各个服务的标识,范围0-65535,自定义一般大于1024:8989、9090

案例

服务器端

// 1.设置服务器端口号
ServerSocket ss = new ServerSocket(9090);
// 2.服务器做监听,客户端通过Socket发送请求就会被监听,同时返回Socket
Socket socket = ss.accept();
// 3.监听到请求后,使用Socket对象的网络读入流进行读入数据
InputStream is = socket.getInputStream();
byte[] b = new byte[10];
int l = is.read(b);
String name = new String(b,0,l);
// 服务器端看到这个信息
System.out.println(name);
// 4.继续使用Socket对象 进行数据写出 给到客户端
OutputStream os = socket.getOutputStream();
os.write(("欢迎你"+name).getBytes());

客户端

// 1.创建和服务器传输数据的Socket对象
Socket socket = new Socket("localhost",9090);		
// 2.通过Socket获取网络写出流对象
OutputStream os = socket.getOutputStream();
os.write("张三".getBytes());
// 服务器刷新
os.flush();
// 暂时解决服务器读不到-1的情况
socket.shutdownOutput();
// 3.等待服务器响应 预备接收服务器响应信息
InputStream is = socket.getInputStream();
byte[] b = new byte[10];
int l =is.read(b);
System.out.println(new String(b,0,l));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值