实验七 网络编程

一、实验目的 

  1. 熟练掌握基于Socket编程的流程。
  2. 熟练掌握网页爬虫的操作步骤

二、实验题目

  1. 爬取一个网页的内容,以文件的形式保存到本地磁盘。
>>> url="http://www.bxait.cn/xxgk/xxjj/"
>>> with urllib.request.urlopen(url) as f:
    print(f.read().decode())


>>> url="http://www.bxait.cn/xxgk/xxjj/"
>>> f=open('xxjj.html','wb')
>>> with urllib.request.urlopen(url) as fp:
	f.write(fp.read())
>>> f.close()


#使用GET方法提交参数并访问页面
>>> import urllib.request
>>> import urllib.parse
>>> params=urllib.parse.urlencode({'key':'python','act':'input'})
>>> url = "http://search.dangdang.com/?%s" % params
>>> with urllib.request.urlopen(url) as f:
    print(f.read().decode('gbk'))

     2.设计一个基于Scoket编程的程序,完成两台电脑之间数据的交流。

服务端代码:
import socket
words = {'how are you?':'Fine,thank you.','how old are you?':'20','what is your name?':'Houyao','where do you work?':'XIAN','bye':'Bye'}
HOST=''
PORT=50007
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(1)
print('Listening at port:',PORT)
conn,addr=s.accept()
print('Connected by',addr)
while True:
    data=conn.recv(1024).decode()
    if not data:
        break
    print('Received message:',data)
    conn.sendall(words.get(data,'Nothing').encode())
conn.close()
s.close()
客户端代码:
import socket
import sys
#客户端
# 服务端主机IP地址和端口号
HOST = '127.0.0.1'
PORT = 50007
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    # 连接服务器
    s.connect((HOST, PORT))
except Exception as e:
    print('Server not found or not open')
    sys.exit()
    
while True:
    c = input('Input the content you want to send:')
    # 发送数据
    s.sendall(c.encode())
    # 从服务端接收数据
    data = s.recv(1024).decode()
    print('Received:', data)
    if c.lower() == 'bye':
        break
# 关闭连接
s.close()

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python网络编程实验是指通过使用Python编程语言来实现网络通信的实验。 在这个实验中,我们可以通过Python提供的socket模块来实现网络通信。socket模块提供了一组用于创建网络套接字的函数和类,可以让我们使用TCP或UDP协议进行网络通信。 首先,我们需要使用socket模块中的socket函数创建一个socket对象。该函数需要指定通信协议和地址族。通常情况下,我们选择使用IPv4协议和TCP协议来进行网络通信。 然后,我们可以使用socket对象的一些方法来进行网络通信。例如,可以使用socket对象的bind方法绑定IP地址和端口号,使用listen方法监听指定端口,使用accept方法接受客户端的连接请求,使用recv和send方法进行数据的接收和发送等。 在实验中,我们可以编写一个客户端程序和一个服务器程序来进行网络通信。客户端程序可以使用socket对象的connect方法连接服务器,然后使用send方法发送数据。服务器程序可以使用socket对象的accept方法接受客户端的连接,然后使用recv方法接收客户端发送的数据,并使用send方法向客户端发送数据。 此外,在实验中,我们还可以尝试使用多线程或多进程来提高网络通信的效率。可以使用Python中的threading模块或multiprocessing模块来创建多线程或多进程。 总之,通过进行Python网络编程实验,我们可以学习和掌握使用Python进行网络通信的方法,深入理解网络协议的工作原理,提高网络通信的效率和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值