027-2018-1015 服务端,客户端,socket

笔记

网络编程 和 并发编程

昨日内容回顾:
   os sys time collections 
   json,logging ,random ,re   
   


今日内容:
   一 C\S架构,客户端服务端架构
      客户端(client) : 享受服务端提供的服务
      
      服务端(server) : 给客户端提供服务
      
      B\S 浏览器和服务端 B(browser)
            
         
   
   二 网络通信的整个流程(硬件\名词)
   
      集线器:将咱们所有的插上集线器的电脑连通起来
      交换机: 升级版集线器
      网卡: 接收电信号,网络插口:插网线
      mac地址(物理地址): 8C-EC-4B-87-99-D7  16进制的6个数表示,前三位厂商编号,后三位生产流水号
         全球唯一的,相当于身份证
         
      广播\单播
      
      广播风暴:首先不安全,拥堵信息
      
      IP地址: 192.168.15.113  四个点分十进制组成 
            192.168.15.0 -- 192.168.15.255  256  
            
            划分广播域
            IPv4  :  
            IPv6  :  6个冒号分十六进制
                  IPv6 地址: fe80::48c3:8f81:8474:c7d0%2

            
            
            
      DHCP协议:自动分配IP地址
      
      子网掩码:  255.255.255.0,
            例外一个班的同学的IP地址为:192.168.14.12
            192.168.14.12
            255.255.255.0
            
            11000000.10101000.00001110.00001100
            11111111.11111111.11111111.00000000
            11000000.10101000.00001110.00000000
            192.168.14.0
            计算是否属于同一网段
            属于同一个网段的,我们成为属于同一子网
            
            #powerdesigner  制图软件,processon
      
      DNS服务器:域名:www.jd.com  -->ip地址  
      路由器:管理网络,联通外网,并且路由转发,就是转发消息
      路由协议:计算最优路径
      网关:把关用的,公网IP,也可以说是路由器的IP地址
      NAT:网络地址转换,将你局域网的IP地址转换为公网的IP地址,也就是网关的IP地址
      局域网\内网
      端口:电脑给你创建的标识电脑上的程序用的.
         0-65535 ,0-1024 属于电脑内部的一些服务用的,千万别用,8000一般自己写程序的时候都不用.
         
   
   
   三 初识socket(重点)
      
      
      看群里面发的图

01服务端.py

import socket
#创建了一个socket对象
server = socket.socket()  #创建一个手机
ip_port = ('192.168.15.113',8001)  #创建了一张电话卡
#绑定IP地址和端口
server.bind(ip_port) #插上电话卡
#监听IP地址和端口

server.listen() #开机
print(11111)
#等待客户端的链接
conn, addr = server.accept()  #等着别人给我打电话,阻塞住

#接收消息
from_client_msg = conn.recv(1024) #1024为消息大小,单位B,MB = 1024KB,1KB = 1024B
#接收的消息是bytes类型,需要转换为字符串
from_client_msg = from_client_msg.decode('utf-8')
print(from_client_msg)

conn.send('死鬼,十点'.encode('utf-8'))
#关闭链接
conn.close()
server.close()

# print(conn)
# print('>>>>',addr)

01客户端.py

import socket
client = socket.socket()

server_ip_port = ('192.168.15.113',8001)

#链接服务端
client.connect(server_ip_port)

#发消息
client.send('约吗'.encode('utf-8')) #send里面的消息必须是字节类型的

from_server_msg = client.recv(1024) #阻塞住,等待接收消息
from_server_msg = from_server_msg.decode('utf-8')
print(from_server_msg)

client.close()



02服务端.py

import socket
#创建了一个socket对象
server = socket.socket()  #创建一个手机
ip_port = ('192.168.15.113',8001)  #创建了一张电话卡
#绑定IP地址和端口
server.bind(ip_port) #插上电话卡
#监听IP地址和端口
server.listen(3) #开机,后面等待链接的客户端个数为3个
print(11111)
#等待客户端的链接
conn, addr = server.accept()  #等着别人给我打电话,阻塞住

while True:
    #接收消息
    from_client_msg = conn.recv(1024) #1024为消息大小,单位B,MB = 1024KB,1KB = 1024B
    #接收的消息是bytes类型,需要转换为字符串
    from_client_msg = from_client_msg.decode('utf-8')
    print(from_client_msg)
    msg = input('瑞鑫说:')
    conn.send(msg.encode('utf-8'))
#关闭链接
conn.close()
server.close()

# print(conn)
# print('>>>>',addr)

02客户端.py

import socket
client = socket.socket()

server_ip_port = ('192.168.15.113',8001)

#链接服务端
client.connect(server_ip_port)

while True:
    msg = input('明杰想说:')
    print('22222')
    #发消息
    client.send(msg.encode('utf-8')) #send里面的消息必须是字节类型的

    from_server_msg = client.recv(1024) #阻塞住,等待接收消息
    from_server_msg = from_server_msg.decode('utf-8')
    print(from_server_msg)

client.close()

练习

 

留两个小练习:
1.
   server端:接收时间戳时间,转换成格式化时间(%Y-%m-%d)的字符串形式的就行
   client端:每隔10秒中把时间戳发给server端,time.time()
2.  一直对话的程序
   server收一个发一个
   client发一个收一个

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值