python网络编程实现TCP和UDP连接

实现TCP

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import socket

# 创建一个socket:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 建立连接:
s.connect((‘www.sina.com.cn‘, 80))

# 发送数据:
s.send(b‘GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection: close\r\n\r\n‘)

# 接收数据:
buffer = []
while True:
    # 每次最多接收1k字节:
    d = s.recv(1024)
    if d:
        buffer.append(d)
    else:
        break

data = b‘‘.join(buffer)

# 关闭连接:
s.close()

header, html = data.split(b‘\r\n\r\n‘, 1)
print(header.decode(‘utf-8‘))

# 把接收的数据写入文件:
with open(‘sina.html‘, ‘wb‘) as f:
    f.write(html)

实现UDP连接

服务端:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import socket

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

# 绑定端口:
s.bind((‘127.0.0.1‘, 9999))

print(‘Bind UDP on 9999...‘)

while True:
    # 接收数据:
    data, addr = s.recvfrom(1024)
    print(‘Received from %s:%s.‘ % addr)
    reply = ‘Hello, %s!‘ % data.decode(‘utf-8‘)
    s.sendto(reply.encode(‘utf-8‘), addr)

客户端:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import socket

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

for data in [b‘Michael‘, b‘Tracy‘, b‘Sarah‘]:
    # 发送数据:
    s.sendto(data, (‘127.0.0.1‘, 9999))
    # 接收数据:
    print(s.recv(1024).decode(‘utf-8‘))

s.close()

原文地址:http://blog.51cto.com/gdutcxh/2113734

时间: 2024-11-07 23:44:36

python网络编程实现TCP和UDP连接的相关文章

Python网络编程—(TCP、UDP区别)

tcp套接字和udp套接字编程区别 1.流式套接字是以字节流方式传输数据,数据报套接字以数据报形式传输 2.tcp套接字会有粘包,udp套接字有消息边界不会粘包 3.tcp套接字保证消息的完整性,udp套接字则不能 4.tcp套接字依赖listen accept建立连接才能收发消息,udp套接字则不需要 5.tcp套接字使用send,recv收发消息,udp套接字使用sendto,recvfrom 原文地址:https://www.cnblogs.com/maplethefox/p/109890

2015/12/14 Python网络编程,TCP/IP客户端和服务器初探

一直不是很清楚服务器的定义,对于什么是服务器/客户端架构也只有一个模糊的感觉.最近开始学习,才明白一些什么服务器和客户端的关系. 所谓的服务器,就是提供服务的东西,它是一个硬件或者软件,可以向一个或者多个客户端提供所需要的服务.它存在的目的就是等待客户的请求,然后给客户服务,再接着等待请求. 而客户端,就来连上一个服务器,提出自己的请求,然后等待获得反馈. 比如说,打印机就是一个服务器的例子,与之相连的计算机就是客户端,通过网络连接打印机后,给它提出服务需求(打印)和传输数据(传输内容),然后打

python socket编程 ,tcp,udp服务端客户端创建

转自http://blog.csdn.net/rebelqsp/article/details/22109925 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发. 下面讲的是Socket模块功能 1.Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号

android 网络编程--socket tcp/ip udp http之间的关系

网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象. 下面是应用层.运输层,网络层.链路层通信协议概图.我们经常接触到的一般是: http协议:应用层协议,并且http协议是基于tcp连接的,主要解决的是如何包装协议的 tcp协议:运输层协议,通常也叫做tcp/ip协议,主要解决数据如何在网络中传输 udp协议:运输层协议,用户数据报协议,不可靠的协议,只负责把应用层的协议的数

[javaSE] 网络编程(TCP,UDP,Socket特点)

UDP特点: 面向无连接,把数据打包发过去,收不收得到我不管 数据大小有限制,一次不能超过64k,可以分成多个包 这是个不可靠的协议 速度很快 视频直播,凌波客户端,feiQ都是UDP协议 TCP特点: 面向连接,对方必须在 三次握手完成连接,我:在吗:你:我在:我:我知道了 大数据量传输 速度稍慢 Socket: Socket就是网络服务提供的一种机制 通信两段都要Socket 网络通信其实就是Socket间的通信 数据在两个Socket间通过IO传输

java基础增强:网络编程、Tcp、Udp案例

一入编程深似海,从此妹子是路人. 1.Udp的客户端,服务端-----DatagramSocket 通过Udp协议编写一个群聊室,具体实现代码如下: package day.by.day.udp.charroom; //客户端代码 import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import j

python 网络编程:TCP

在python2.7中完好运行: #!/usr/bin/python # -*- coding: utf-8 -*- # 导入socket库: import socket # 创建一个socket: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect(('www.sina.com.cn', 80)) s.send('GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nCo

python 网络编程(Socket)

# from wsgiref.simple_server import make_server## def RunServer(environ,start_response):# start_response(status='200 OK',headers=[('Content-Type','text/html')])# url=environ['PATH_INFO']## return "guozhendong"## if __name__=='__main__':# httpd=m

[python] 网络编程之套接字Socket、TCP和UDP通信实例

很早以前研究过C#和C++的网络通信,参考我的文章: C#网络编程之Tcp实现客户端和服务器聊天 C#网络编程之套接字编程基础知识 C#网络编程之使用Socket类Send.Receive方法的同步通讯 Python网络编程也类似.同时最近找工作笔试面试考察Socket套接字.TCP\UDP区别比较多,所以这篇文章主要精简了<Python核心编程(第二版)>第16章内容.内容包括:服务器和客户端架构.套接字Socket.TCP\UDP通信实例和常见笔试考题. 最后希望文章对你有所帮助,如果有不