网络数据与网络错误

news/2024/5/17 17:38:56 标签: python, 网络编程, 实验, tcp, 粘包

服务器端和客户端IP:当前主机IP

分析给定通信程序中的client端和server端代码,对出现的粘包问题进行简单描述并分析出现的原因

设计一个方案解决通信中的粘包问题

对client端和server端程序进行修改,并验证方案的正确性 

# -*- coding: utf-8 -*-
"""
Created on Sat Sep 28 15:03:38 2019

@author: cyberspace
"""

import socket
ip_port = ('127.0.0.1',9980)
tcp_socket_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket_client.connect(ip_port)
poems = {'春夜喜雨':'好雨知时节,当春乃发生。随风潜入夜,润物细无声。野径云俱黑,江船火独明。晓看红湿处,花重锦官城。', \
             '望岳':'岱宗夫如何?齐鲁青未了。造化钟神秀,阴阳割昏晓。荡胸生曾云,决眦入归鸟。会当凌绝顶,一览众山小。',\
             '绝句':'两个黄鹂鸣翠柳,一行白鹭上青天。窗含西岭千秋雪,门泊东吴万里船。'}
for title, content in poems.items():
    tcp_socket_client.send(title.encode('utf-8'))
    tcp_socket_client.send('@'.encode('utf-8'))
    tcp_socket_client.send(content.encode('utf-8'))
    tcp_socket_client.send('$'.encode('utf-8'))
tcp_socket_client.close()

 

# -*- coding: utf-8 -*-
"""
Created on Sat Sep 28 15:01:00 2019

@author: cyberspace
"""

import  socket ,time
ip_port=('127.0.0.1', 9980)
tcp_socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_socket_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp_socket_server.bind(ip_port)
tcp_socket_server.listen(5)

conn, addr = tcp_socket_server.accept()
time.sleep(1)
msg = conn.recv(1024)
msg1 = msg.decode('utf-8')
msg2 = msg1.split('$')
msg_len = len(msg2)
i = 0
for i in range(msg_len-1):
    msg3 = msg2[i].split('@')
    print("题目:"+ msg3[0])
    #print(msg3[0])
    print("正文:"+ msg3[1] )
conn.close()

运行结果:

源码将会上传至资源


http://www.niftyadmin.cn/n/1365783.html

相关文章

.NET Remoting之Helloworld

一 Remoting 1)什么是Remoting, 简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft.NET Re…

服务器架构

编写程序分别实现服务端和客户端要求功能 服务器能够使用TCP协议同时为多台客户端主机提供部分电影的演员信息查询服务(基于多线程或者异步通信): 服务端启动后,需先建立数据结构来存储从movieResult.csv文件中读入的电影数据,并建立socket对…

http协议-数据请求

编写程序实现新闻网页数据的请求和获取数据的保存: 进入一个学校的新闻首页,分析各不同新闻网页url之间的区别和联系,并根据得到的规律通过程序生成所要请求的网页的url(前30个页面)。 使用requests库通过http协议的ge…

silverlight 无法发布 如何灵活配置IP

灵活配置IP可以有一个工具的 我为了比赛花了 两天工具做了一个配置Silverlight IP的小工具 可以参考 http://download.csdn.net/source/2714688转载于:https://www.cnblogs.com/zcy_soft/archive/2010/09/24/1833780.html

http协议-数据提交

编写程序实现通过有道或百度翻译url对用户输入数据进行翻译: 进入有道翻译或者百度翻译页面,找出页面向服务器提交待翻译数据使用的url; 使用浏览器分析工具分析相关需要提交的数据字段以及值,主要包括:(1&…

struts.custom.i18n.resources

struts.custom.i18n.resources 每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化 首先在struts.properties文件中加入以下内容:struts.custom.i18n.resourcesmessageResource或在struts.xml中加入<constant name"stru…

smtp协议——邮件发送

根据自己使用的邮件服务器&#xff0c;完成smtp协议的服务开启 给特定邮箱发送图文并茂的邮件&#xff0c;邮件正文包含的表格如下所示&#xff0c;显示的图片自己确定。 给特定邮箱发送邮件&#xff0c;邮件附件为“实验报告7 smtp协议 # -*- coding: utf-8 -*- ""&…

安装TensorFlow时出现Cannot uninstall 'enum34'等问题

Cannot uninstall enum34. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. 你需要卸载enum34 输入以下命令即可&#xff1a; sudo pip install --ignore-installed en…