python_112_网络编程 Socket编程




实例1:客户端发小写英文,服务器端返回给客户端大写英文(仅支持一次接受发送)
服务器端:
#服务器端(先于客户端运行)
import socket
server=socket.socket()
server.bind(('localhost', 6969))#绑定要监听的端口,只能接受一个参数
server.listen()#监听 print('我要开始等电话了')
conn,addr=server.accept()#等电话打进来 conn:连接标记 addr:对方的地址
#conn就是客户端连过来而在服务器端为其生成的一个连接实例
print('conn:',conn)
print('addr:',addr)
print('电话来了') data=conn.recv(1024)#接受数据 数据大小最好<=8192 recv默认是阻塞的
print('recv',data)
conn.send(data.upper())#返回一个值 server.close()
客户端:
#客户端
import socket client=socket.socket()#声明协议(socket)类型,同时生成socket连接对象
client.connect(('localhost',6969))#连接,只能接受一个参数 client.send(b'hello world')#发送数据 注:python3中只能发byte类型,python2可以发字符串,byte(字节)类型
# 注:byte类型只能接受ascall码数据类型
# client.send('我要下载aaa片'.encode())#发送中文要这样写(英文也没问题)
data=client.recv(1024)#接受服务器端的返回,可以指定接受大小 这里我指定的是1024个字节
print('recv:',data)
# print('recv:',data.decode())#接受中文要这样写(英文也没问题) client.close()
实例2:重复接受与发送(linux系统上操作最合适)
服务器端:
import socket
import os
sever=socket.socket()
sever.bind(('localhost',6969))
sever.listen(5)#5可以更换别的数字,这里指的是可以挂起5个客户端连接(异步通信时可以懂得),默认写5个
print('我要开始等电话了') while True:
coon, addr = sever.accept()
print('coon:', coon)
print('addr:', addr) while True:
data=coon.recv(10240)
print('recv',data)
if not data:
print('client has lost')
break
# res = os.popen(data).read() # 获取执行结果,并执行命令(将socket模拟ssh客户端)
# coon.send(res)#将send替换为sendall,表示循环发送send
coon.send(data.upper()) sever.close()
客户端:
import socket
client=socket.socket()
client.connect(('localhost',6969))
while True:
msg=input('>>:').strip()#注意发送不了空的,所以要用if语句
if len(msg)==0:continue
client.send(msg.encode('utf-8'))
data=client.recv(1024)
print(data.decode()) client.close()
python_112_网络编程 Socket编程的更多相关文章
- python网络编程-socket编程
一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...
- Day8 - Python网络编程 Socket编程
Python之路,Day8 - Socket编程进阶 本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...
- 网络编程——socket编程
一.客户端/服务端架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网企业处处是C/S架构 C/S架构与socket的关系:学习socket就是为了完成C/S架构的开发 二.OSI七层 一个 ...
- Day10 Python网络编程 Socket编程
一.客户端/服务器架构 1.C/S架构,包括: 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务)[QQ,SSH,MySQL,FTP] 2.C/S架构与socket的关系: 我们学习soc ...
- Python的网络编程 Socket编程
Socket是进程间通信的一种方式,与其他进程间通信的一个主要不同是:能实现不同主机间的进程间通信,网络上各种各样的服务大多都是基于Socket来完成通信的,要解决网络上两台主机间的通信问题,首先要唯 ...
- HUST-计算机网络实验-socket编程
随笔---HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看. 实验要求: 编写一个 Web 服务器软件,要求如下: 基本要 ...
- python网络编程socket编程(TCP、UDP客户端服务器)
摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...
- 网络编程----------SOCKET编程实现简单的TCP协议
首先我们须要大致了解TCP的几点知识: 1.TCP的特点:面向连接的可靠性传输 2.TCP的三次握手建立连接和四次挥手释放连接.但为什么TCP要三次握手建立连接呢? 答:由于两次握手无法保证可靠性.若 ...
- 网络编程 socket编程 - Asyncsocke
简单的聊天程序:http://blog.csdn.net/chang6520/article/details/7967662 iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 c ...
随机推荐
- 《剑指offer》面试题15—输出链表中倒数第n个结点
题目:如题,且从1开始计数. 思路:要求只遍历一遍链表:设置两个指针,一个先走n步后另一个开始同步后移,当快指针已经到链表尾时慢指针正好到要输出的结点. 注意:本题思路比较好想到,主要考察的是代码的鲁 ...
- MFC CMap整理
映射表类(CMap)是MFC集合类中的一个模板类,也称作为“字典”.CMap是把唯一关键码映射到值的字典收集类,使用CMap可以构造一个关键字和元素值映射的集合类.一旦在映射中插入了一个关键码值对(元 ...
- bzoj 2502: 清理雪道【有上下界有源汇最小流】
对于原有边,流区间是(1,inf),按着原边连,然后再连(s,i,(0,inf)),(i,t,(0,inf))表示任意位置进出雪场 按着这个建出新图 然后最小流的方法是先跑可行流,设ans为(t,s, ...
- [Xcode 实际操作]一、博主领进门-(6)Xcode的iOS模拟器的基本使用方法
目录:[Swift]Xcode实际操作 本文将演示Xcode的iOS模拟器的基本使用方法. 在项目导航区,鼠标右键[Assets.xcassets]资源文件夹. 隔壁右侧区域左下角点击[+],打开资源 ...
- hyperledger fabric 1.0.5 分布式部署 (三)
本篇博客主要是向读者介绍 fabric 在部署时的一些细节,还有作者自己学习过程中的心得. 初始化相关密钥的程序,实际上是一个shell脚本,并且结构特别简单 generateArtifacts.sh ...
- 五粮液【线段树】By cellur925
题目传送门 考场上感觉的确是线段树,还要维护区间最值...最值怎么维护?还要区间修改?\(update\)的时候加一下就好了吧...之后怎么搞啊?\(qwqwq\)之后好像不太会了...果断删除几乎快 ...
- 慕课笔记-Java入门第二季
1.java对象的使用 (1)创建对象 类名 对象名=new 类名(); (2)使用对象 引用对象的属性:对象名.属性; 引用对象的方法:对象名.方法(); Note: ①Java会给成员变量赋初始值 ...
- Java 序列化(转)
转自 http://www.infoq.com/cn/articles/cf-java-object-serialization-rmi 对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在 ...
- Java 时区(转)
http://blog.csdn.net/wangpeng047/article/details/8560690
- 51Nod 1098 最小方差 (数论)
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; ty ...