实例1:客户端发小写英文,服务器端返回给客户端大写英文(仅支持一次接受发送)

服务器端:

  1. #服务器端(先于客户端运行)
  2. import socket
  3. server=socket.socket()
  4. server.bind(('localhost', 6969))#绑定要监听的端口,只能接受一个参数
  5. server.listen()#监听
  6.  
  7. print('我要开始等电话了')
  8. conn,addr=server.accept()#等电话打进来 conn:连接标记 addr:对方的地址
  9. #conn就是客户端连过来而在服务器端为其生成的一个连接实例
  10. print('conn:',conn)
  11. print('addr:',addr)
  12. print('电话来了')
  13.  
  14. data=conn.recv(1024)#接受数据 数据大小最好<=8192 recv默认是阻塞的
  15. print('recv',data)
  16. conn.send(data.upper())#返回一个值
  17.  
  18. server.close()

客户端:

  1. #客户端
  2. import socket
  3.  
  4. client=socket.socket()#声明协议(socket)类型,同时生成socket连接对象
  5. client.connect(('localhost',6969))#连接,只能接受一个参数
  6.  
  7. client.send(b'hello world')#发送数据 注:python3中只能发byte类型,python2可以发字符串,byte(字节)类型
  8. # 注:byte类型只能接受ascall码数据类型
  9. # client.send('我要下载aaa片'.encode())#发送中文要这样写(英文也没问题)
  10. data=client.recv(1024)#接受服务器端的返回,可以指定接受大小 这里我指定的是1024个字节
  11. print('recv:',data)
  12. # print('recv:',data.decode())#接受中文要这样写(英文也没问题)
  13.  
  14. client.close()

实例2:重复接受与发送(linux系统上操作最合适)

服务器端:

  1. import socket
  2. import os
  3. sever=socket.socket()
  4. sever.bind(('localhost',6969))
  5. sever.listen(5)#5可以更换别的数字,这里指的是可以挂起5个客户端连接(异步通信时可以懂得),默认写5
  6. print('我要开始等电话了')
  7.  
  8. while True:
  9. coon, addr = sever.accept()
  10. print('coon:', coon)
  11. print('addr:', addr)
  12.  
  13. while True:
  14. data=coon.recv(10240)
  15. print('recv',data)
  16. if not data:
  17. print('client has lost')
  18. break
  19. # res = os.popen(data).read() # 获取执行结果,并执行命令(将socket模拟ssh客户端)
  20. # coon.send(res)#将send替换为sendall,表示循环发送send
  21. coon.send(data.upper())
  22.  
  23. sever.close()

客户端:

  1. import socket
  2. client=socket.socket()
  3. client.connect(('localhost',6969))
  4. while True:
  5. msg=input('>>:').strip()#注意发送不了空的,所以要用if语句
  6. if len(msg)==0:continue
  7. client.send(msg.encode('utf-8'))
  8. data=client.recv(1024)
  9. print(data.decode())
  10.  
  11. 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. git 回退到服务器版本操作

    git fetch git reset orgin master --hard git pull

  2. AttributeCollection.Add(String, String) Method

    <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  3. Educational Codeforces Round 20 C(math)

    題目鏈接: http://codeforces.com/problemset/problem/803/C 題意: 給出兩個數n, k, 將n拆分成k個數的和,要求這k個數是嚴格遞增的,並且這k個數的g ...

  4. SpiderMonkey 入门学习(一)

    spidermonkey 源码下载:http://ftp.mozilla.org/pub/mozilla.org/js/ 测试系统 Ubuntu 12.04, js 1.7.0, js 解压在/opt ...

  5. P1290-关灯

    描述 Description 宁智贤得到了一份有趣而高薪的工作.每天早晨她必须关掉她所在村庄的街灯.所有的街灯都被设置在一条直路的同一侧.宁智贤每晚到早晨5点钟都在晚会上,然后她开始关灯.开始时,她站 ...

  6. 第二篇 Nosql讲解之windows下memcache的安装(一)

    memcached基本概念 1.Memcached是danga的一个项目,最早是LiveJournal服务的,最初为了加速LiveJournal访问速度而开发的,后来被很多大型的网站采用. 官方网站: ...

  7. python selenium模块调用浏览器的时候出错

    python selenium模块使用出错,这个怎么改 因为不同版本更新不同步问题,浏览器都要另外下一个驱动.

  8. lucene原理及java实现

    https://blog.csdn.net/liuhaiabc/article/details/52346493 https://blog.csdn.net/yang307511977/article ...

  9. android videoView 加载等待

    final Handler handler = new Handler(); Runnable runnable = new Runnable() { public void run() { int ...

  10. swiper 解决动态加载数据滑动失效的问题

    两种解决方法 第一种解决办法: success:function(result){ var resultdata =eval("("+result+")"); ...