热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python网络编程linux清华_Python网络编程实现TCP和UDP连接

Python网络编程实现TCP和UDP连接实现TCP#!usrbinenvpython3#-*-coding:utf-8-*-importsocket#创建一个socket:sso

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()

0b1331709591d260c1c78e86d0c51c18.png



推荐阅读
author-avatar
手机点菜_748
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有