高级编程之 socker编程

高级编程之 socker编程1 网络基础 1 1 IP 地址 1 1 1 目的 用来标记网络上的一台电脑 1 1 2 如何查看 IPwindow ifconfigLinu ipconfig1 1 3 IP 地址分类 1 1 3 1 IPV4 被广泛使用的 IP 协议的版本号是 4 当前再用 目前被广泛应用 IPv4 的地址位数为 32 位 4 位字节 地址有限 几乎全部耗尽 1 1 3 2 IPV6

1. 网络基础

1-1. IP地址

1-1-1. 目的:

用来标记网络上的一台电脑

1-1-2. 如何查看IP

window:

ifconfig 

Linux:

ipconfig 

1-1-3. IP地址分类

1-1-3-1. IPV4(被广泛使用的)
  1. IP协议的版本号是4
  2. 当前再用,目前被广泛应用
  3. IPv4的地址位数为32位(4位字节)
  4. 地址有限,几乎全部耗尽
1-1-3-2. IPV6
  1. IP协议的版本号是6
  2. 实验阶段,作为下一代IP地址
  3. IPv6的地址位数位128位(16位字节)
  4. 号称可以为全世界的每一粒啥子编上一个地址

1-2. 端口(port)

1-2-1. 知名端口

  1. 80端口分配给HTTP服务
  2. 21端口分配给FTP服务
  3. 。范围是从0到1023

1-2-2. 动态端口

动态端口的范围是从1024-65535

2. socker

2-1. socker 基本概念

2-1-1. 简介

TCP/IP协议

TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

TCP/IP协议模型
模型socker
socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。白话说,socket就是两个节点为了互相通信,而在各自家里装的一部’电话’。




2-2. socker的使用

  1. 创建套接字
  2. 使用套接字收/发数据
  3. 关闭套接字
2-2-1. UDP发送与接收程序

UDP发送数据

import socket def main(): # 创建一个UDP套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) udp_socket.sento(b'nihao', ('.0.162', 8080) # 关闭socker udp_socket.close() if __name__ == '__main__': main() 

UDP接收数据

  1. 创建套接字
  2. 绑定本地信息(IP和端口)
  3. 接收数据
  4. 打印数据
  5. 关闭套接字
import socket def main(): udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 1 创建套接字 bind_addr = ('',7789) # 不写ip,表示本机的任何一个ip udp_socket.bind(bind_addr) # 2 绑定本地信息 while True: recv_data = udp_socketrecvfrom(1024) # 3. 1024 表示本次接收最大字节数 recv = recv_data[0] send_data = recv_data[1] print("{}:{}".format(str(send_data), recv.decode('gbk')) # 4. 打印数据 udp_socket.close() # 5. 关闭套接字 if __name__ == '__main__': main() 

端口绑定问题
如果程序运行时,没有绑定端口,那么操作系统会自动分配一个端口给程序。而且同意端口,不能用两次。

UDP聊天器

  1. 创建套接字,套接字是可以同时收发数据的
  2. 发送数据
  3. 接收数据
2-3. TCP客户端与服务端

TCP介绍

  • TCP协议,传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议
  • TCP通信需要经过创建连接、数据传送、终止连接三个步骤
  • TCP通信模型中,在通信开始之前,一定要先建立相关连接,才能发生数据

TCP特点

面向连接:

  • 通信双方必须先建立连接才能进行数据的传输

可靠传输:

  • TCP采用发送应答机制
  • 超时重传
  • 错误校验
  • 流量控制和阻塞管理

TCP与UDP区别总给

  1. CP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
  2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
  3. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
  4. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
  5. TCP对系统资源要求较多,UDP对系统资源要求较少。

UDP 通信
UDP 通信
TCP 通信
TCP 通信
TCP 客户端与服务端的定义
服务器端:就是提供服务的一方,而客户端,就是需要被服务的一方










TCP客服端
构建流程:

  1. 创建socket
  2. 链接服务器
  3. 接收数据(最大接收2014字节)
  4. 关闭套接字

TCP服务端

  1. socket创建套接字
  2. bind绑定IP和port
  3. listen使套接字变为可以被动链接
  4. accept等待客户端的连接
  5. recv/send接收发送数据

TCP服务端为多个客户端服务

文件下载器

TCP客户端

  1. 创建套接字
  2. 目的信息 服务器的ip和port
  3. 连接服务器
  4. 输入要下载的文件名称
  5. 发送文件下载请求
  6. 接收对方发送过来的数据
  7. 接收到数据在创建文件、
  8. 关闭套接字

TCP服务端

  1. socket创建套接字
  2. bind绑定IP和port
  3. listen使套接字变为可以被动链接
  4. accept等待客户端的链接
  5. recv/send接收发送数据
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227672.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午8:48
下一篇 2026年3月16日 下午8:49


相关推荐

  • html js 全局 变量,JS定义全局变量

    html js 全局 变量,JS定义全局变量【实例名称】定义全局变量【实例描述】在高级开发语言(如c#、Java)中可以很方便地使用“public”等关键字,定义应用程序中的全局变量,但JaVascript的变量只能存在于当前的方法中。本例通过一个简单的方法实现全局变量的定义。【实例代码】标题页-学无忧(www.xue51.com)functiontoGlobal(varName){window.execScript(varName)…

    2022年6月6日
    107
  • PyTorch建立resnet34和resnet101代码[通俗易懂]

    PyTorch建立resnet34和resnet101代码[通俗易懂]model.pyimporttorch.nnasnnimporttorchclassBasicBlock(nn.Module):expansion=1def__init__(self,in_channel,out_channel,stride=1,downsample=None):super(BasicBlock,self).__init__()self.conv1=nn.Conv2d(in_channels=

    2026年4月16日
    4
  • 决策树算法例题_决策树算法比较

    决策树算法例题_决策树算法比较上一节介绍了决策树的一些基本概念,诸如树的基本结构,信息熵等。这次就用一个例子,来看看ID3决策树的具体运行过程吧~~

    2022年8月6日
    10
  • cmpp20协议对接「建议收藏」

    cmpp20协议对接「建议收藏」最近公司派任务,让完成cmpp20协议的ps模块。这里总结下期间遇到的问题。1、cmpp20的协议里没有report实体,其实report是和deliver在一起的。deliver里有一个字段Registered_Delivery,0代表deliver,1代表report。同时,当deliver代表report时,MessageContent里面是msgid、Stat、Submit_time、Do…

    2025年7月15日
    8
  • atop用法_atop 简单使用

    atop用法_atop 简单使用atop 是一个系统性能监控工具 可以在系统级别监控 CPU 内存 硬盘和网络的使用情况 atop 不仅可以以交互式的方式运行 还可以一一定的频率 将性能数据写入日志中 所以当服务器出现问题之后 便可分析 atop 日志文件来判断是否有进程异常退出 内存和 CPU 方面的异常 字段含义 PRC Processlevel 内核态下运行时间 user 用户态下运行时间 pro

    2026年3月19日
    1
  • 个人数字作品合作协议

    个人数字作品合作协议个人数字作品合作协议甲方:地址:身份证号:联系方式:乙方:北京创新乐知网络技术有限公司地址:北京市朝阳区酒仙桥路10号恒通商务园B8b二层本协议系由北京创新乐知网络技术有限公司(以下简称”CSDN”)与所有通过CSDN下载平台发布作品的用户就资源的引入、使用及相关服务所订立的有效合约,您必须同意并遵守本协议。您通过任何方式参与数字作品提交均被视为您完全接受本协议。本协议具有合同效力。一、总则1.1本协议内容包括协议正文及所有CSDN及CSDN下载平台已经发布的或将来.

    2022年6月23日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号