网络编程_tcp与dup协议简单应用
老师的博客:http://www.cnblogs.com/Eva-J/articles/8066842.html 计算机网络基础
:http://www.cnblogs.com/Eva-J/articles/8244551.html 网络编程
基于TCP协议的简单的发消息
server
import socket
from socket import SOL_SOCKET,SO_REUSEADDR
tool=socket.socket()
tool.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
tool.bind(('192.168.43.155',8891))#IP port
tool.listen()#监听连接
connect,address=tool.accept()#接受client的信息,建立三次握手
get=connect.recv(1024).decode('utf-8')#接受信息
print(get)
connect.send(bytes('you can go oher place'.encode('utf-8')))
get = connect.recv(1024).decode('utf-8')
print(get)
connect.close()
注意,当建立三次握手后,所有的操作前缀都是你拿到的那个链接,而下面的client的前缀都是自己的那个前缀
client
import socket
client=socket.socket()
client.connect(('192.168.43.155',8891))#建立三次握手
client.send(bytes('i am coming'.encode('utf-8')))#发信息
get = client.recv(1024).decode('utf-8')#接受信息
print(get)
client.send(bytes('i only say goodbye'.encode('utf-8')))
client.close()
TCP协议是,建立连接时,谁先发送消息都可以,但是注意的是,必须是一发一收,一发一收,按照顺序来。serve接受时,不必写入地址,因为tcp协议是面向
的协议
基于DUP协议
server
import socket
ip_port=('192.168.43.155',8898)
server=socket.socket(type=socket.SOCK_DGRAM)
server.bind(ip_port)
message,address=server.recvfrom(1024)
set = message.decode('utf-8')
print(set)
print('client address:',address)
server.sendto(bytes('i know you coming'.encode('utf-8')),address)
message,address=server.recvfrom(1024)
print(message.decode('utf-8'))
print('client address:',address)
server.close()
client
import socket
ip_port=('192.168.43.155',8898)
client=socket.socket(type=socket.SOCK_DGRAM)
client.sendto(bytes('i am coming'.encode('utf-8')),ip_port)
message,address=client.recvfrom(1024)
print('sever address:',address)
print(message.decode('utf-8'))
client.sendto(bytes('i am going'.encode('utf-8')),address)
client.close()
udp 协议不必遵循发一收一,但是发几条信息得收几条信息,发送信息是和接受信息时必需带上地址
网络编程_tcp与dup协议简单应用的更多相关文章
- 嵌入式linux的网络编程(1)--TCP/IP协议概述
嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...
- C#网络编程TCP通信实例程序简单设计
C#网络编程TCP通信实例程序简单设计 采用自带 TcpClient和TcpListener设计一个Tcp通信的例子 只实现了TCP通信 通信程序截图: 压力测试服务端截图: 俩个客户端链接服务端测试 ...
- 网络编程杂谈之TCP协议
TCP协议属于网络分层中的传输层,传输层作用的就是建立端口与端口的通信,而其下一层网络层的主要作用是建立"主机到主机"的通信,所以在我们日常进行网络编程时只要确定主机和端口,就能实 ...
- Android网络编程系列之HTTP协议原理总结
前言 作为搞移动开发的我们,免不了与网络交互打交道.虽然市面上很多开源库都封装的比较到位,我们实现网络访问也轻车熟路.但还是十分有必要简要了解一下其中的原理,以便做到得心应手,也是通往高级开发工程师甚 ...
- Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver
今日内容:socket网络编程 1.OSI七层协议 2.基于tcp协议的套接字通信 3.模拟ssh远程执行命令 4.tcp的粘包问题及解决方案 5.基于udp协议的套接字 ...
- 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议
Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...
- 网络编程之基于UDP协议的套接字编程、基于socketserver实现并发的socket
目录 基于UDP协议的套接字编程 UDP套接字简单示例 服务端 客户端 基于socketserver实现并发的socket 基于TCP协议 server类 request类 继承关系 服务端 客户端1 ...
- python 之 网络编程(基于TCP协议的套接字通信操作)
第八章网络编程 8.1 基于TCP协议的套接字通信 服务端套接字函数 s.bind() 绑定(主机,端口号)到套接字 s.listen() 开始TCP监听 s.accept() 被动接受TCP客户的连 ...
- 网络编程_TCP协议_客户端与服务端
客户端发数据到服务端 Tcp传输,客户端建立的过程. 1,创建tcp客户端socket服务.使用的是Socket对象.建议该对象一创建就明确目的地.要连接的主机. 2,如果连接建立成功,说明数据传输通 ...
随机推荐
- 简单的了解一下AQS吧
什么是AQS AQS,即AbstractQueuedSynchronizer,是一套定义了多线程访问共享资源的同步器框架.在JDK的并发包中很多类都是基于AQS进行实现的,比如ReentrantLoc ...
- LinkedHashMap为什么是有序的(与put先后顺序一致)
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作,如有错误之处忘不吝批评指正! 絮叨絮叨 首先呢,明白一点 LinkedHashMap是HashMap的子类 ...
- google的GCM推送使用简介
pom <!-- https://mvnrepository.com/artifact/com.google.gcm/gcm-server --> <dependency> & ...
- Android总结篇系列:Activity启动模式(lauchMode)
本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己的一些理解,在此感谢原作者. 文章地址: http://blog.csdn.net/l ...
- 预测python数据分析师的工资
前两篇博客分别对拉勾中关于 python 数据分析有关的信息进行获取(https://www.cnblogs.com/lyuzt/p/10636501.html)和对获取的数据进行可视化分析(http ...
- 痞子衡嵌入式:一表全搜罗常见低功耗广域物联网协议(NB-IoT/eMTC/LoRa/SigFox...)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是低功耗广域物联网协议. 上一篇痞子衡给大家搜罗了短距离无线通信协议,它是物联网的基础,但它的应用距离比较短,对于长距离的物联网应用鞭长莫 ...
- Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介
前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...
- shell编程练习(四): 笔试31-68
笔试练习(四): 31.找查较多的SYN连接 netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uni ...
- es简单打造站内搜索
最近挺忙的,在外出差,又同时干两个项目.白天一个晚上一个,特别是白天做的项目,马上就要上线了,在客户这里 三天两头开会,问题很多真的很想好好静下来怼代码,半夜做梦都能fix bugs~ 和客户交流真的 ...
- 前端入门12-JavaScript语法之函数
声明 本系列文章内容全部梳理自以下几个来源: <JavaScript权威指南> MDN web docs Github:smyhvae/web Github:goddyZhao/Trans ...