网络编程(关于TCP和UDP)

TCP是传输控制协议,它提供的是面向连接,可靠的字节流服务,当客户和服务器彼此交换数据前,会进行连接看是否能收到,之后才能传输数据,直到数据传输结束。

优点:具有超时重发.丢弃重复数据.效验数据.流量控制等功能,保证了数据能从一端传到另一端。

缺点:传输大型文件时会产生粘包

使用TCP的应用:web浏览器.电子邮件.文件传输程序

 

UDP是用户数据报协议,是一个简单的面向数据报的运输层协议。不提供可靠性,只是把应用程序数据报发送出去,不保证是否能接收到数据,传递数据时不进行三次握手,没有重发机制,故而传输数据很快

优点 :传输快,一对一.一对多.多对多.多对一.面向报文,尽最大努力服务,不会产生粘包问题

缺点:不可靠,没有连接的服务

使用UDP的应用:视频流,电台

简单的TCP案例:

服务器端:

import socket
skt = socket.socket()
skt.bind(('127.0.0.1',5000))#绑定ip地址和端口号
skt.listen() #监听链接
conn,addr = skt.accept()#接受客户端连接
ret = conn.recv(1024) #接受客户端1024个字节
print(ret) #打印客户端信息
conn.send(b"laowang") #向客户端发送信息
conn.close() #关闭客户端接字
skt.close() #关闭服务器接字

客户端:

import socket
skt = socket.socket() #创建客户套接字
skt.connect(('127.0.0.1',5000))#尝试连接服务器
skt.send(b'1111') #对话
ret = skt.recv(1024)# 发送/接收
print(ret)
skt.close() #关闭客户套接字

缺点是只能发一句话

 

posted @ 2018-12-20 19:29  浮生若梦不悔  阅读(373)  评论(0编辑  收藏  举报