python画图程序实验报告_20192401 实验三《Python程序设计》实验报告

20192401 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》

班级: 1924

姓名: 王麦齐

学号: 20192401

实验教师:王志强

实验日期:2020年5月16日

必修/选修: 公选课

1.实验内容

创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

2. 实验过程及结果

首先复习了相关Socket的相关技术,系统的回忆了相关关键字的有关知识。

以下是实验过程摸索出的代码:

Sever:

import socket

import os

import base64

def main():

# 1.创建一个tcp套接字socket

tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.绑定本地地址,端口号bind

tcp_socket.bind(("127.0.0.1", 7000))

# 3.监听个数 listen(128)

tcp_socket.listen(128)

print('****************服务器连接********************')

conn, addr = tcp_socket.accept()

conn.send('Hi!'.encode('utf-8'))

file = open('./' + "new_file.txt", 'wb')

data = conn.recv(1024)

jiema = base64.b64decode(data)

print(jiema)

file.write(jiema)

file.close()

print('接收任务完成!')

while True:

print("***************服务器开始*****************")

print("")

# 4.接受客户进来,accept 返回元祖,一个变量提供当前进来客户到的服务

# 第二个变量继续等待下一个客户

new_server, add = tcp_socket.accept()

while True:

# 5.接受客户信息

mess = new_server.recv(1024)

if mess:

print(mess.decode("utf-8"))

# 5.给客户返回信息

send_message = input("请输入你要回复的信息:")

new_server.send(send_message.encode("utf-8"))

else:

break

# 6.关闭当前服务的客户

new_server.close()

# 7.关闭套接字

tcp_socket.close()

if __name__ == "__main__":

main()

CLIENT:

import socket

import base64

客户端的socket的初始化

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('127.0.0.1',7000))#用元组的形式进行连接(ip地址,端口)

file = open(r'D:\Desktop\try1.txt')

str = file.read()

print(str)

bytes_str = str.encode("utf-8")

str_url = base64.b64encode(bytes_str)

print(str_url)

s.send(str_url)

while 1 :

str1 = input("请输入要传输的内容:")

s.sendall(str1.encode())

data = s.recv(1024)

print(data.decode())

if str1 == 'close':

break

s.close()

1817504-20200522211358067-1704331216.png

3. 实验过程中遇到的问题和解决过程

问题1:如何进行相关加密任务

问题1解决方案:在百度中寻找相关资料,利用base64的相关语句进行加密解密

4.感悟

这次实验中一直想要尝试仿照QQ的对话框,可以进行文字交流和数据的传输,书到用时方恨少,凭借自己找到的资料和自己的调试还是没能将其完美实现,仅仅只是完成了老师所交代的实验内容,但是从这次的实验中,我体会到了作为程序设计人员基础不牢固的苦痛,没有足够的储备只能临时搜寻,在大片大片的答案中筛选,在实现文件的传输过程中,共有两份客户端和服务器的代码无法运行,而且凭借自身的知识储备无法检查出其内在错误,只好作罢,但是今天突然有了一个念想,希望自己在省下的一个月里,在完成实验四的同时,将这次实验没有完成的遗憾填满,感激挫折,感谢阻挠,才拥有思考!

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值