day 26 网络通讯流程 初识socke
一. ***
C/S架构:客户端(client)/服务端(server)架构,
B/S架构:浏览器(browser) / 服务端(server)架构
软件cs架构:浏览器,qq,微信,陌陌等等
硬件cs架构:打印机
二. 网络通信的整个流程 ***
集线器:将所有电脑联通起来
交换机:升级版的集线器
网卡:接收处理电信号
Mac地址:物理地址: 1C-1B-0D-74-43-9A 前三位厂商编号 后三位生产流水号,全球唯一的,也就是你网络设备的身份证号
姑娘的mac地址:约吗?
Ip地址 IPv4 地址: 192.168.12.11 划分广播域
Ip地址段:192.168.12.0 --- 192.168.12.255 同一ip地址段,称为同一子网,以广播的形式通信.192.168.0.0 -- 192.168.255.255
子网掩码:计算是否属于同一网段,同一子网 255.255.255.0
目标ip地址是:192.168.12.16
11000000.10101000.00001100.00010000
255.255.255.0
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000
192.168.12.0
DHCP协议:自动获取IP地址
Arp协议:通过ip地址获取mac地址
域名:www.jd.com
DNS服务端:{‘www.jd.com’:173.16.49.0}
三. 初识socket *****
服务器端代码
- import socket#导入socket模块
- #创建socket对象,创建了一个手机server = socket.socket()
- #给程序设置一个ip地址和端口号,买了个手机卡ip_port = ('192.168.12.70', 8002)
- #绑定ip地址和端口,插卡server.bind(ip_port)
- #监听ip地址和端口,简称开机server.listen()
- print('111111')#等待建立连接, conn是连接通道,addr是客户端的地址,阻塞程序conn, addr = server.accept()
- print('222222')
- #服务端通过conn连接通道来收发消息,通过recv方法,recv里面的参数是字节(B),1024的意思1024B=1KBfrom_client_msg = conn.recv(1024)
- print('高旺说:', from_client_msg.decode('utf-8'))
- to_client_msg = input('高旺的女朋友说:')
- #回复消息:通过send方法,参数必须是字节类型的,conn.send(to_client_msg.encode('utf-8'))
- #关闭通道,关电话,通过close方法conn.close()#关闭socket对象,关机server.close()
- 客户端代码
#导入socket
import socket
#创建一个socket对象
client = socket.socket()
#找到服务端的ip地址和端口
server_ip_port = ('192.168.12.11',8002)
#连接服务端的应用程序,通过connect方法,参数是服务端的ip地址和端口,打电话
client.connect(server_ip_port)
to_server_msg = input('高旺说:')
#发消息,用的send方法,但是调用者是client的socket对象
client.send(to_server_msg.encode('utf-8'))
from_server_msg = client.recv(1024)
print('高旺的女朋友说:',from_server_msg.decode('utf-8'))
client.close()
day 26 网络通讯流程 初识socke的更多相关文章
- DIOCP网络通讯流程
DIOCP 运作核心探密 原文连接: http://blog.qdac.cc/?p=2362 原作者: BB 天地弦的DIOCP早已经广为人知了,有很多的同学都用上了它,甚至各种变异.修改版本也出 ...
- 基于TCP协议的网络通讯流程
不多说了,先上个图: 从上面的图中可以看出来,基于TCP协议进行通讯可以大致分成以下几个阶段: 1. 首先是在服务器端, TCP Sever调用socket(), bind(), listen()完成 ...
- day26 网络通讯的整个流程
一.网络通信原理 1. 互联网的本质就是一系列的网络协议 2. 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 各层的功能简述: [1]物理层:主要定义物理设备标准,如网 ...
- Windows 网络通讯开发
Windows 网络通讯开发 一.Windows网络开发API 由于C++标准库中没有网络库,所以进行网络开发的时候要调用系统API.Windows通讯开发API包括以下几个基本函数及成员类型: 1. ...
- 文档:网络通讯包结构(crc校验,加解密)
一直想把这个流程整理一下. 包结构: 包 对(datacrc+protoID+dataSize)组成的byte[] 进行crc计算而得到 对(数据内容)进行crc计算而得到 协议号 数据内容的字节长度 ...
- Socket网络通讯开发总结之:Java 与 C进行Socket通讯 + [备忘] Java和C之间的通讯
Socket网络通讯开发总结之:Java 与 C进行Socket通讯 http://blog.sina.com.cn/s/blog_55934df80100i55l.html (2010-04-08 ...
- zigbee学习:示例程序SampleApp中通讯流程
zigbee学习:示例程序SampleApp中通讯流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://wjf88223.bl ...
- C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)
在程序设计中,涉及数据存储和数据交换的时候,不管是B/S还是C/S模式,都有这样一个概念:数据库服务器.这要求一台性能和配置都比较好的主机作为服务器,以满足数目众多的客户端进行频繁访问.但是对于一些数 ...
- tcp/ip网络通讯安全加密方法
tcp/ip网络通讯安全是一个广受关注的话题,现在也有一些基于tcp/ip加密技术标准如SSL,TLS等.但很多时候编写一些简单的网络通讯把这标准加密应用添加进来乎一下子把程序变得复杂了,而实现自己的 ...
随机推荐
- Centos7创建用户su登录后显示为 bash-4.1$
useradd name [root@localhost data]# su name bash-4.2$ [root@localhost ~]# cp -a /etc/skel/. /home/na ...
- c++的读入txt文件(转)
因为学姐的项目需要,要用到excel的读入读出,百度过后发现txt的读入读出比较简单,于是,我采用了先把excel转成txt,然后再读入. 方法是csdn上的天使的原地址: https://blo ...
- C++类构造函数初始化列表(转)
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式.例如: { public: int a; float b; //构 ...
- synchronized(三)
package com.bjsxt.base.sync003; /** * 对象锁的同步和异步问题 * @author alienware * */public class MyObject { pu ...
- LINUX内核完全注释
学习教材:LINUX内核完全注释,内核版本0.11,修正版V3.0 赵炯编著 参考教材:UNIX操作系统设计--M. J. Bach, programming the 80x86 --John H. ...
- 4--Selenium环境准备---chromedriver.exe 与chrome版本匹配
0.jdk8 和eclipse 4.6 https://www.eclipse.org/downloads/packages/release/neon/3 1.selenium-server-stan ...
- [转][译] Closures in Lua - Lua中的闭包
http://www.cnblogs.com/plodsoft/p/5900270.html?utm_source=tuicool&utm_medium=referral 原文:(PDF) . ...
- JavaScript循环语句-6---for语句,while语句的应用逻辑
JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块 ...
- 螺旋图 comet3 (comet) 不同轴的圆周运动图
matlab 绘图 螺旋图小实例 动态显示comet3函数(comet显示平面) t=[:]; x=*t*sin(pi/).*cos(*t); y=*t*sin(pi/).*sin(*t); z=* ...
- Echarts 绘图(饼图,中国地图)
一个使用Javascript 实现的开源可视化库,可以流畅的运行在pc 和移动设备上,兼容当前绝大部分浏览器(Chrome ,firefox,IE8)等 底层依赖轻量级的矢量图形库ZRender,提供 ...