网络编程(1)

编写代码实现跨主机之间的通信。

1.套接字

应用层(程序)调用传输层(操作系统)的一组函数,这组函数统称为网络编程套接字(socket)。

传输层主要涉及两种协议,TCP/UDP,所以根据两种不同的协议提供了两组socket函数。

2.TCP/UDP

TCP特性:有连接,可靠传输,面向字节流,全双工

TCP(Transmission Control Protocol)传输控制协议

有连接:

TCP正式通信之前,就需要让通信双方保存对方的关键信息,通信结束后再删除对方的关键信息。

丢包:

网络传输过程中是可能产生丢包的。每个路由器/交换机在单位时间内能够传输的数据量有限,如果传输超出上限,就会出现丢包。

可靠传输:

就是对抗丢包,尽可能把数据传输给对方。如果数据不能送达接收方,也能知道接收方是否收到了数据报。

面向字节流:

和读写文件类似,使用InputStream和OutputStream

全双工:

一个通信,可以进行双向传输。

半双工就是一个通信只能单向传输。

UDP特性:无连接,不可靠传输,面向数据报,全双工

无连接;

不考虑丢包;

面向数据报:每次读写以一个UDP数据报为单位进行。

3.socket

socket有多种含义:

1.网络编程套接字socket:网络编程中用到的传输层api的统称

2.socket对象:表示网卡硬件设备的抽象,socket对象相当于一种特殊的文件

4.使用UDP协议进行网络编程

1.server

1.DatagramSocket类

DatagramSocket类的方法·:

2.DatagramPacket(数据报包)

DatagramPacket是UDP Socket发送和接收的数据报,DatagramPacket是UDP数据传输中的基本单位。

3.SocketException异常

SocketException继承IOException:

4.客户端与服务器

5.端口号

指定port端口号,作为构造方法的参数。

端口号:区分主机上的不同的应用程序

6.启动服务器

7.读取请求并解析

异常

8.根据请求计算响应

9.将响应返回给客户端

udp无连接,socket对象不获取发送端的IP和端口号。

所以要手动设置服务器计算后的响应发给谁

2.client

1.传参,服务端IP、端口号

2.开启客户端

3.用户输入

4.构造UDP数据报,进行发送

5.从服务器读取相应

6.显示响应

相关推荐
学长毕设32 分钟前
基于SpringBoot的游乐园管理系统-附源码
java·spring boot·后端
wdeok1 小时前
Socket编程Tcp
服务器·网络·tcp
SimonKing1 小时前
震惊:怎么回事,opencode一轮对话耗尽免费额度
java·后端·程序员
装不满的克莱因瓶1 小时前
【SpringAI Alibaba】ReactAgent响应SSE实时流式传输案例实战
java·人工智能·ai·sse·springai
杨凯凡1 小时前
Spring Boot 文件上传怎么做才安全?流式落盘、路径校验与数据库一致性实战
java·spring boot·文件上传·后端安全·数据库一致性
这个昵称不容易2 小时前
旅游管理系统的设计与实现(SpringBoot + MySQL + Vue 前后端分离)
java·springboot·毕设
Rain的Java大神之路2 小时前
LeetCode 37 解数独面试攻略:回溯 + 位掩码 + MRV,从暴力到毫秒级求解
java·后端·leetcode
天天被压力3 小时前
【A股分钟级高频数据完全手册 #11】券商实时行情数据接口:实时交易(券商源)接入与字段
java·人工智能·python
天天被压力3 小时前
【A股分钟级高频数据完全手册 #12】股票五档盘口数据接口:买卖五档实时盘口解析
java·人工智能·python
Wang's Blog12 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友