Python——Socket编程
一、TCP
1、客户端
import socket
sk = socket.socket() # 买个手机
sk.connect(('127.0.0.1',8080)) # 拨号
ret = sk.recv(1024)
print(ret)
sk.send(b'byebye!')
sk.close()
2、服务端
import socket
sk = socket.socket() # 创建了一个socket对象
sk.bind(('192.168.21.36',8080)) # 绑定一台机器的(ip,端口)
# 回环地址 - 指向自己这台机器
sk.listen() # 建立监听等待别人连接
conn,addr = sk.accept() # 阻塞:在这里等待直到接到一个连接
# conn是连接
# addr是对方的地址
print(conn)
print(addr)
conn.send(b'hello') # 和对方打招呼
msg = conn.recv(1024) # 对方和我说的话
# 有发必有收 收发必相等
print(msg)
conn.close() # 挂电话
sk.close() # 关机
二、UDP
UDP的server不需要进行监听也不需要建立连接,在启动服务值周,只能被动的等待客户端发送消息过来
客户端发送消息的同时还会自带地址信息,消息回复的时候,不仅需要发送消息,还需要把自己的地址发送过去
1、客户端
import socket
sk = socket.socket(type=socket.SOCK_DGRAM)
sk.sendto(b'hello',('127.0.0.1',8080)) # 直接给服务器发送一段消息
msg,addr = sk.recvfrom(1024) # 接收对面的回信
print(msg)
sk.close()
2、服务端
import socket
sk = socket.socket(type=socket.SOCK_DGRAM) # 建立一个socket对象,
# 指定以UDP协议的形式来连接
sk.bind(('127.0.0.1',8080))
# 指定服务的地址
msg,addr = sk.recvfrom(1024) # 接收消息,发送端的地址
print(msg,addr)
sk.sendto(b'HELLO',addr) # 给发送端回复消息
sk.close() # 关闭socket连接
Python——Socket编程的更多相关文章
- Python Socket 编程——聊天室示例程序
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的 ...
- python/socket编程之粘包
python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提 ...
- PYTHON SOCKET编程简介
原文地址: PYTHON SOCKET编程详细介绍 Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 Soc ...
- python socket编程笔记
用python实现一个简单的socket网络聊天通讯 (Linux --py2.7平台与windows--py3.6平台) 人生苦短之我用Python篇(socket编程) python之路 sock ...
- [Python_7] Python Socket 编程
0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*- "&q ...
- Python Socket 编程示例 Echo Server
简评:我们已经从「Python Socket 编程概览」了解了 socket API 的概述以及客户端和服务器的通信方式,接下来让我们创建第一个客户端和服务器,我们将从一个简单的实现开始,服务器将简单 ...
- Python Socket 编程——聊天室演示样例程序
上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket ...
- python socket编程入门(编写server实例)+send 与sendall的区别与使用方法
python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...
- 第九章:Python高级编程-Python socket编程
第九章:Python高级编程-Python socket编程 Python3高级核心技术97讲 笔记 9.1 弄懂HTTP.Socket.TCP这几个概念 Socket为我们封装好了协议 9.2 cl ...
- python socket编程详细介绍
Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...
随机推荐
- linux下tomcat启动很慢的解决办法
1.用vim编辑器打开tomcat的bin目录下的catalina.sh [root@iz09a32x1sghz3z bin]# vi /usr/local/src/java/tomcats/tomc ...
- Mybatis框架基础支持层——日志模块(8)
前言: java开发中常用的日志框架有Log4j,Log4j2,Apache Commons Log,java.util.logging,slf4j等,这些工具对外的接口不尽相同.为了统一这些工具的接 ...
- HTML和CSS在IE7中常见的兼容性问题
IE7及以下版本都会有这些问题 1.IE7块转内联块问题 问题描述:好像块转内联块失败,依然不在一行排列 解决办法:给元素添加如下css *display:inline;*zoom:1; *di ...
- Dynamics 365-如何利用Audit History还原被删除的数据
Audit History,常被用来记录record的日常操作信息,包括创建,更新,删除.这是一个非常实用的功能,想想看,如果数据被误修改了,通过Audit History,可以很容易地找到修改前的数 ...
- 轨迹系列1——一种基于路网图层的GPS轨迹优化方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 GPS数据正常情况下有20M左右的偏移,在遇到高楼和桥梁等情况 ...
- Android 运行报错 Unknown failure (at android.os.Binder.execTransact(Binder.java:681)) Error while Installing APKs 解决办法
今天,我用手机测试的时候出现了这个错误 我网站查找了一会资料, 在运行的时候出现提示大致意思:卸载删除已存在应用程序,是否卸载现有应用程序,点击ok就会出现如下错误 原应用程序也没有卸载,然后自己手动 ...
- nodejs 使用 js 模块
nodejs 使用 js 模块 Intro 最近需要用 nodejs 做一个爬虫,Google 有一个 Puppeteer 的项目,可以用它来做爬虫,有关 Puppeteer 的介绍网上也有很多,在这 ...
- 【笔记】两个根因分析方法:5WHY&10WHY
什么是问题根因分析 根本原因分析(root cause analysis):通过调查和分析问题哪里出错.为什么出错,寻求防止差错事故再次发生的必要措施,从而提高服务安全和质量. 根因分析目标 问题(发 ...
- win10安装JDK详细教程
电脑进行了重装机器.需要重新安装,在此记录一下. 点击下一步.选择安装路径 . 等待后,选择安装位置. 点击下一步,继续等待. 安装完成. 设置环境变量 在桌面右键单击 我的电脑→属性→高级系统设置→ ...
- JavaScript(二)数据类型(二)
布尔值布尔值指真或假,开或关,是或否,关键字true和false.下面这些值会被转换成false: undefined null 0 -0 NaN "" // 空字符串 布 ...