python笔记11-----(学习自清华大学出版社的python从入门到精通的配套视频)

python笔记----网络编程

网络:各个孤立的工作站相连在一起,从而达到资源共享和通信的目的。
局域网:
广域网:
网络协议:
TCP/IP协议:
四层结构:应用层(HTTP)、传输层(TCP)、网络层(IP)、链路层(网络)
IP协议
IP地址:32位整数,按八位分为一组
在终端:ping + 网址 ping www.baidu.com
MAC地址:网卡地址(物理地址),48位2进制,12位16进制
在终端:ipconfig/all
IP协议作用:负责把数据通过网络发送到另外一台计算机
TCP协议作用:检测双方是否具备发送和接收功能
端口:(0-65535),要使用1024以上的端口号
UDP协议:传输数据
是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发送数据包
Socket套接字:提供给程序可以对外进行连接d接口
1.创建Socket
s = socket.socket(AddressFamily,Type)
AddressFamily:AF_INET 用于internet通信
AF_UNIX用于同一台机器进程间通信
Type:套接字类型,SOCK_STREAM(TCP)
SOCK_DGRAM(UDR)
2.Socket 通信流程
TCP编程:
1.创建TCP服务器
例子:使用服务器向浏览器发送“Hello Word"
import socket
host = ‘127.0.0.1’
port = 8080 #端口号
web = socket.socket()
web.bind((host,port)) #绑定
web.listen(5) #监听
print(‘服务器等待客户端连接’)
while True:
conn,addr = web.accept()
data = conn.recv(1024)
print(data)
conn.sendall(b’HTTP/1.1 200 OK\r\n\r\nHello World’) #返回头部信息,返回体
conn.close()
2.创建TCP客户端
例子:使用客户端发送数据
import socket
host = ‘127.0.0.1’
port = 8080 #端口号
client= socket.socket()
client.connect((host,port)) #连接服务器
send_data = input(“请输入要发送的数据:”)
client.send(send_data.encode())
recv_data = client.recv(1024).decode()
print(“接收到的数据是:%s” % recv_data)
client.close()
3.执行TCP服务器和客户端
例子:制作简易聊天窗口
服务器:
import socket
host = socket.gethostname()
port =12345 #端口号
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port)) #绑定
s.listen(1) #监听
sock,addr= s.accept()
print(‘连接已建立’)
info = sock.recv(1024).decode()
while info != ‘byebye’:
if info :
print(“接收到的数据是:%s” % info)
send_data = input(“请输入要发送的数据:”)
sock.send(send_data.encode())
if send_data == ‘byebye’:
break
info = sock.recv(1024).decode()
sock.close()
s.close()
客户端:
import socket
host = socket.gethostname()
port =12345 #端口号
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port)) #连接服务器
print(“已经连接”)
info = ‘’
while info != ‘byebye’:
send_data = input(“请输入要发送的数据:”)
s.send(send_data.encode())
if send_data == ‘byebye’:
break
info = s.recv(1024).decode()
print(“接收到的数据是:%s” % info)
s.close()
UDP编程:
1.创建UDP服务器
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind((‘127.0.0.1’,8888 )) #绑定
print(“绑定UDP到8888端口”)
data,addr= s.recvfrom(1024)
data = float(data)*1.8+32
send_data = “转化后的温度(单位:华氏度):” + str(data)
print(“Recieved from %s:%s” %addr)
s.sendto(send_data.encode(),addr)
s.close()
1.创建UDP客户端
1.创建客户端套接字
2.发送/接收数据
3.关闭套接字
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
data = input(“请输入要发送的数据:”)
s.sendto(data.encode(),(‘127.0.0.1’,8888 ))
print(“转化后的温度%s” % s.recv(1024).decode())
s.close()
3.执行UDP服务器和客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值