ip地址

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

如何查看电脑的IP地址?
分Windows和Linux系统

  1. Windows是ipconfig
  2. Linux是ifconfig

IP地址的分类
按版本分类
Ipv4:

  1. IP协议的版本号是4
  2. 目前在用,应用最广泛
  3. 地址位数是32位(4个字节)
  4. 地址有限,基本已消耗完毕

ipv6:

  1. IP协议的版本号是6
  2. 在试验当中,应用还不广泛
  3. 地址位数是128位(16个字节)
  4. 基本可以为每一粒沙子标记

按地址分类
A类B类C类,区别就是后面的主机号位数不一样

端口

每个软件运行的时候系统会自动分配端口,每一个重启的端口会变化

端口范围:0-65535
知名端口:0-1024(这是已经固定的,不会改变)
动态端口:1024-65535

TCP/IP协议

TCP/IP协议即是传输控制协议和因特网互联协议,是基于Internet最基本的协议,又名网络通讯协议,Internet互联网的基础,由网络层的IP协议和传输层的TCP协议组成。
一共有七层(现在一般说是四层):

如何创建套接字?
需要导入socket模块
socket(family=,type=)

  1. family是协议族
  2. type 是套接字类型,一共有两种分别是tcp(流失套接字,SOCK_DGRAM),
    udp(数据报套接字,SOCK_STREAM)

udp发送数据

步骤:

创建套接字
发送、接受数据
关闭套接字

import socket
udp_socket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
family  协议族
type 套接字类型       tcp 流失套接字        udp  数据报套接字
# 发送数据/接受数据
while True:send_data = input('输入你要发送的数据:')udp_socket.sendto(send_data.encode('gbk'), ('192.168.0.115', 8080))# encode 是编码# decode 是解码if send_data == 'exit':break
# 关闭套接字
udp_socket.close()

udp接受数据

步骤:

创建套接字
绑定信息
接受数据
打印数据
关闭套接字

import socketdef main():# 创建套接字udp_socket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)# 绑定信息bind_addr = ('', 7880)udp_socket.bind(bind_addr)# 接受数据recv_data = udp_socket.recvfrom(1024)print(recv_data)  # 打印是一个元组(数据,发送方的地址)# 关闭套接字udp_docket.close()if __name__ == '__main__':main()

案例——udp版聊天器

import socketdef send_data(udp_socket):send = input('请输入需要发送的数据:')udp_socket.sendto(send.encode('gbk'), ('192.168.0.115', 7875))def recv_data(udp_socket):recv = udp_socket.recvfrom(1024)print("发送ip:%s发送内容:%s" % (recv[1], recv[0].decode('gbk')))def main():udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)udp_socket.bind(("", 7875))while True:send_data(udp_socket)recv_data(udp_socket)if __name__ == '__main__':main()

socket编程——upd(数据报套接字)相关推荐

  1. Socket编程实践(9) --套接字IO超时设置方法

    引:超时设置3种方案 1. alarm超时设置方法 //代码实现: 这种方式较少用 void sigHandlerForSigAlrm(int signo) {return ; }signal(SIG ...

  2. Linux环境SOCKET编程1:套接字

    一.socket运行过程 服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接.在这时如果有个客户端初始化一个Socket,然 ...

  3. Linux socket编程,对套接字进行封装

    转自:http://www.cnblogs.com/-Lei/archive/2012/09/04/2670942.html 下面是对socket操作的封装,因为在Linux下写中文到了windows ...

  4. 【网络编程】Socket套接字;UDP数据报套接字编程;TCP流套接字编程

    文章目录 1. 什么是网络编程 2. 网络编程中的基本概念 3. Socket套接字 4 UDP数据报套接字编程 4.1 客户端服务器交互流程 4.2 UDP版本的回显服务 4.3 英译汉服务 5. ...

  5. 网络编程学习笔记-套接字编程-socket

    本文为了说明例子,用中文作为变量写在了程序里面,一般编程最好不要那么写 前置概念详见 本文目录 概念 基本TCP套接字编程 通信循环 半链接池 链接循环 udp协议 基于TCP协议实现远程执行客户端请 ...

  6. 网络编程【UDP数据报套接字编程】

    目录 1.网络编程基础 1.1 为什么需要网络编程? 1.2 什么是网络编程 1.3 网络编程中的基本概念 2.Socket套接字 2.1 分类 3.UDP数据报套接字编程 3.1 DatagramS ...

  7. 1.3.1 数据报套接字编程

    1.3  实现超链接 在网络应用过程中,特别是在Web程序中,超级链接用得非常普遍.其实使用VC技术,也可以实现超级链接功能.在本节的内容中,将介绍使用Visual C++ 6.0开发一个实现超级链接 ...

  8. python 图形化socket编程_Python黑帽编程2.8 套接字编程

    Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...

  9. socket:数据报套接字

    数据报套接字 一.什么是数据报套接字 二.基于流套接字的客户/服务器的工作流程 1.服务器 2.客户端 三.套接字接口 1.recvfrom()系统调用 2.sendto()系统调用 四.示例 一.什 ...

最新文章

  1. python多线程的使用(导入线程模块、创建子线程任务、启动子线程任务、获取当前执行的线程号)
  2. 重温目标检测--SSD
  3. react-native-webview禁止缩放
  4. POI异步导入Excel兼容xsl和xlsx
  5. vue --- [全家桶]vue-router
  6. cdatabase读取excel第一行数据_pandas读取excel数据并对重复数据进行标记或者删除
  7. android+完美的列表,android完美讲义.pdf
  8. 四、Python-元组
  9. ectouch 概述
  10. 资源 | 最新版区块链术语表(中英文对照)2019-1.14
  11. PMP学习笔记 第11章 项目风险管理
  12. java银行排队系统_java--面向对象(一个简单的银行排队系统)原理版
  13. 【书影观后感 五】你的名字
  14. 基于微信小程序实现番茄钟专注时间项目演示【附项目源码+论文说明】
  15. 标视界:值得您信赖的商标查询网
  16. Speedoffice(excel)如何利用MIN函数求最小值
  17. SoftMax函数,交叉熵损失函数与熵,对数似然函数
  18. javascript scrollbar滚动条相关属性
  19. SaaS电子病历系统源码
  20. c语言李白喝酒答案,李白嗜酒文言文答案

热门文章

  1. Startup攻略秘籍,从头到尾,一篇搞定!
  2. PMO和PM如何准备项目状态报告及进行项目进度汇报?【附项目状态表和进度跟踪表】
  3. lync服务器不响应或无法联系,Lync 2013 已知问题
  4. 系统信息 打包压缩 软件安装 其他命令
  5. oeasy教您玩转vim - 59 - # 编辑总结
  6. 文件批量重命名的方法,图解很多文件改名
  7. [51单片机] 从业将近十年!手把手教你单片机程序框架(连载)(转载)
  8. 企业邮箱格式怎么写怎么申请邮箱?电子邮箱的正确填写地址
  9. 如何将链接生成二维码
  10. studio 3t注册码脚本