实例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编程的更多相关文章

  1. python网络编程-socket编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  2. Day8 - Python网络编程 Socket编程

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  3. 网络编程——socket编程

    一.客户端/服务端架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网企业处处是C/S架构 C/S架构与socket的关系:学习socket就是为了完成C/S架构的开发 二.OSI七层 一个 ...

  4. Day10 Python网络编程 Socket编程

    一.客户端/服务器架构 1.C/S架构,包括: 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务)[QQ,SSH,MySQL,FTP] 2.C/S架构与socket的关系: 我们学习soc ...

  5. Python的网络编程 Socket编程

    Socket是进程间通信的一种方式,与其他进程间通信的一个主要不同是:能实现不同主机间的进程间通信,网络上各种各样的服务大多都是基于Socket来完成通信的,要解决网络上两台主机间的通信问题,首先要唯 ...

  6. HUST-计算机网络实验-socket编程

    随笔---HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看. 实验要求: 编写一个 Web 服务器软件,要求如下: 基本要 ...

  7. python网络编程socket编程(TCP、UDP客户端服务器)

    摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...

  8. 网络编程----------SOCKET编程实现简单的TCP协议

    首先我们须要大致了解TCP的几点知识: 1.TCP的特点:面向连接的可靠性传输 2.TCP的三次握手建立连接和四次挥手释放连接.但为什么TCP要三次握手建立连接呢? 答:由于两次握手无法保证可靠性.若 ...

  9. 网络编程 socket编程 - Asyncsocke

    简单的聊天程序:http://blog.csdn.net/chang6520/article/details/7967662 iPhone的标准推荐是CFNetwork 库编程,其封装好的开源库是 c ...

随机推荐

  1. SqlServer2012——Select,分组,排序、插入

    1.select 简单语句 --select语句 * --select子句 * AS result --select子句,可以将结果保存在result中 ~~~~~~~~~~~~~~~~~~~~~~~ ...

  2. RXJS组件间超越父子关系的相互通信

    RXJS组件间超越父子关系的相互通信 用到这个的需求是这样的: 组件A有数据变化,将变化的数据流通知组件B接收这个数据流并做相应的变化 实例化RXJS的subject对象 import { Injec ...

  3. webpack内置模块ProvidePlugin

    webpack配置ProvidePlugin后,在使用时将不再需要import和require进行引入,直接使用即可. 使用方法: 在webpack.dev.conf.js和webpack.prod. ...

  4. 企业级SpringBoot与Dubbo的使用方式

    企业级SpringBoot与Dubbo的使用方式 SpringBoot越来越热门以至于达到满大街可见的程度,而Dubbo这个基于二进制的微服务框架又捐献给Apache孵化,如果不会如何使用那么是不是很 ...

  5. laravel 数据库连接Mysql

    找到 config/database.php 'mysql' => [ 'driver' => 'mysql', //数据库的类型 'host' => env('DB_HOST', ...

  6. hyperledger fabric 1.0.5 分布式部署 (七)

    fabric 使用 fabric-ca 服务 准备部分 首先需要用户从github上download fabric-ca 的工程代码 cd $GOPATH/src/github.com/hyperle ...

  7. suse 11.4添加阿里源

    感谢SilenMark 作者,让我找到了一个可用的suse 国内源. 大家直接使用root 用户执行以下命令,添加阿里源 zypper addrepo -f http://mirrors.aliyun ...

  8. w3c网址和标准化过程

  9. iOS开发 - 多线程实现方案之NSThread篇

    NSThread API //类方法:创建一个线程 + (void)detachNewThreadWithBlock:(void (^)(void))block API_AVAILABLE(macos ...

  10. UVa12186:Another Crisis(树形DP)

    一道简单的树形DP送给你. A couple of years ago, a new world wide crisis started, leaving many people with econo ...