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

相关推荐
李少兄1 小时前
JavaScript 运算符完全指南
java·开发语言·javascript
极客互动API1 小时前
企业微信 AI 智能客服实战:Spring Boot+Vue 接入豆包、扣子、DeepSeek
java·人工智能·微信·企业微信
今天AI了吗1 小时前
Codex使用技巧:深度解析 Plan Mode 与 Goal Mode
java·网络·人工智能·架构·java-ee
Huangxy__1 小时前
java+ai 全栈项目
java·开发语言
阿维的博客日记1 小时前
Example API指南2
java·mybatis
ctlover1 小时前
网络编程和多线程
开发语言·网络·python
神仙别闹1 小时前
基于C#实现(WinForm)文件管理系统
java·开发语言·c#
砚底藏山河1 小时前
存储选型实战:CSV-SQLite-MySQL同机基准(魔码量化实战 #02)
java·数据库·python·金融·maven
huaweichenai1 小时前
spring boot 打包并部署到线上服务
java·数据库·spring boot