python网络编程自学_五分钟搞定Python网络编程实现TCP和UDP连接

5e575d8accf90df1526342631951eac7.png

Python网络编程实现TCP和UDP连接, 使用socket模块, 所有代码在python3下测试通过。

实现TCP#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import socket

# 创建一个socket:

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

# 建立连接:

s.connect(('www.baidu.com', 80))

# 发送数据:

s.send(b'GET / HTTP/1.1\r\nHost: www.baidu.com\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://www.mzph.cn/news/442287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java自定义线程_Java自定义线程池详解

自定义线程池的核心:ThreadPoolExecutor为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制,其中在java.util.concurrent包下,是JDK并发包的核心,比如我们熟知的Executor…

java 垃圾回收 null_java方法中把对象置null,到底能不能加速垃圾回收

今天逛脉脉,看见匿名区有人说java中把对做置null,这种做法很菜,不能加速垃圾回收,但是我看到就觉得呵呵了,我是觉得可以加速置null对象回收的。测试的过程中,费劲的是要指定一个合理的测试堆大小&#xff0…

零基础学java web开发pdf_新手学Java Web开发.pdf

作 者 :杨磊等编著出版发行 : 北京:北京希望电子出版社 , 2010.01ISBN号 :978-7-89498-988-8页 数 : 480丛书名 : 新手学编程系列原书定价 : 49.80主题词 : 计算机编程软件,JAVA WEB中图法分类号 : TP3 ( 工业技术->…

java 外卖订餐系统_java外卖订餐系统小项目

本文实例为大家分享了java外卖订餐系统的具体代码,供大家参考,具体内容如下执行结果:通过选择功能序号,执行响应的功能:代码实现:package 外卖订餐系统;/** 代码优点,使用 循环:* 显…

java 字符串包含某个字符_java中判断字符串中是否包含某个特定字符串的方法有哪些...

判断一个字符串是否包含某个子串的n种方法:1、startsWith()方法2、contains()方法3、indexOf方法startsWith()方法这个方法有两个变体,用于检测字符串是否以指定的前缀开始。此方法定义的语法如下:public boolean startsWith(String prefix, int toffset…

java的方法调用中分不清_java中不太清晰的知识点

一、什么包需要导入,什么包不需要导入1.java.lang包的内容是自动导入的,不需要手动导入,其它必须手动导入。2.java.io.OutputStreamWrite已经是完整的类,无需再导入,而printWrite这个类,并不是调用完整的类…

java生命小游戏_Java修炼——飞机生存小游戏

在学习了java入门的课程之后,自己动手跟着老师写的一个小游戏,用的是Frame。总共有七个类。1.飞机游戏的主窗口(MyGameFrame)继承Frame。package com.bjsxt.plane;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Gr…

链队列的基本运算java_链式队列基本操作的实现问题

问题描述:用链式存储方式实现队列的基本操作涉及变量:front:Node型自定义变量,指向队首元素rear:Node型自定义变量,指向队尾元素涉及教材:《数据结构——Java语言描述(第2版)》 清华大学出版社大…

mysql数据库优化看的书_MySQL 数据库优化,看这篇就够了

点击上方"IT牧场",选择"设为星标"技术干货每日送达!来源:segmentfault.com/a/1190000018631870前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相…

python 升级所有库_自动更新Python所有第三方库

一般python用得比较久以后,就会安装很多第三方的库。比如这是我的pip list情况:pip list而且一屏还显示不完。通过如下命令可以看到需要更新的第三方库:pip list -o需要更新的库而pip提供的更新命令只能一个个的更新...pip install -U 库名 #…

java 反射 类变量_java反射机制取出model类的所有变量,以及value

工作上遇到个问题,顺便解决了,希望对大家有帮助package com.zuidaima.util;public static void main(String[] args) throws ClassNotFoundException, IllegalArgumentException, IllegalAccessException, InstantiationException {Class> obj Class.forName("com.roi…

php 去掉不可见字符串,php去掉指定字符串的办法

php去掉指定字符串的办法:首先创建一个PHP示例文件;然后定义字符串;最后通过“str_replace(array("_","",""),"",$str);”方法去掉指定字符串即可。推荐:《PHP视频教程》用正则可以解决问…

php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...

上传单个文件,此文以上传图片为例,上传效果如图所示创建数据库upload_img,用于保存上传路径CREATE TABLE seminar_upload_img ( id int(11) NOT NULL AUTO_INCREMENT, img_name varchar(255) DEFAULT NULL COMMENT 图片名称, img_url varchar(255) DE…

PHP数组的访问方法有几种,数组常用方法有哪些

数组中常用的方法有:1、给数组末尾添加新内容的push方法;2、删除数组最后一项的pop方法;3、删除数组第一项的shift方法;4、向数组首位添加新内容unshift方法等等。数组常用的一些方法:1、push()向数组的末尾添加新内容…

java opcode 反汇编,如何将VM的opcode嵌入汇编源码中

这次来一个关于VM的混淆办法,可能只是个小trick,仅仅来自胡思乱想也许你会觉得很奇怪,一个VM能有啥新鲜的,对,单纯来说VM保护源代码已经非常的成熟了,所以在这里只做最基本的介绍,而且这次的重点…

php ip 合法,什么是合法ip地址

合法的IP地址中,每个三位数都是在0~254之间的,不可能是大于254就连255都不行。这才是合法的IP地址,还有 IP地址有A\B\C类IP。iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式。A类的IP地址范围为0.0.0.0-127.255.255.255B类的IP地址范…

php session和cookie区别,php中session和cookie的区别是什么?

一、Session(1)Session的由来以及介绍Session:在计算机中,尤其是在网络应用中,称为“会话控制”,生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间,也就是用户浏览这个网站所花费的时间。由于Http是一种…

matlab 泡泡图,使用matlab绘制2维、3维气泡图

在学习模糊c均值聚类时,突然想到能否将每个样本对所属簇的奴属度(C)用气泡图的形式表示出来,这样就可以在一张图上同时获得分类与奴属度(C)两类信息。在matlab中没有绘制气泡图的专用函数,不过可以通过手动设置参数,来最终达到气泡…

用vscode可以开发php,【编程开发工具】vscode能够编写php吗

Visual Studio Code一个轻量且壮大的代码编辑器,支撑Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支撑,而且具有雄厚的插件生态系统,可通过装置插件来支撑C、C#、Python、PHP等其他言语。Visual Studio Code设置php…

ant混淆编译java web,Android中使用ant混淆编译

搞了好几天,查看了上百个网站,最后摸索出一套很简单的ant混淆编译的方法。下面开始:1.拿一个普通项目来说,首先为它加上ant编译功能。android update project --name project_name -t 3 -p D:/temp/project_name此时会在项目根目录…