网络编程(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.显示响应

相关推荐
QuZhengRong5 分钟前
【Spring】后端接收的请求参数多了一个逗号的处理办法
java·后端·spring
ZealSinger6 分钟前
Go1.25容器感知GOMAXPROCS避限流
java·开发语言
cxoptics14 分钟前
LBO 会不会潮解?存储、镀膜、日常使用注意事项?
java
SL_staff16 分钟前
非研发人员搭业务逻辑?先认清这3个可视化编程分水岭
java
王闯写bug19 分钟前
tomcat老版本下载tomcat8.5下载
java·tomcat
CHENKONG_CK24 分钟前
RFID 赋能汽车零部件涂装产线,构建全流程数字化追溯体系
网络·人工智能·单片机·网络协议·tcp/ip·汽车
凤山老林24 分钟前
Spring Boot DDD 分层架构落地:领域模型、聚合根与事件驱动的业务实战
java·spring boot·架构
自强的小白26 分钟前
MYbatis-plus(自定义sql)
java·sql·mybatis
古法安卓27 分钟前
Android-Ext4文件系统问题排查
android·java·android studio
Escalating_xu30 分钟前
【C 语言】深入理解指针(3):字符指针、数组指针、二维数组传参、函数指针与转移表
java·c语言·开发语言