定义

  socket 是进程间的一种通信方式,可以实现不同主机间的数据传输

#写服务期端程序server.py

#实现服务器向客户端连接

 #!/usr/bin/env python
#coding:utf-8
import socket
s= socket.socket()
#127.0.0.1是本地主机,1234是随意设置到一个端口号
s.bind(('127.0.0.1',1234)) #绑定端口号为1234 #等待客户端连接
s.listen(5)
while True:
c, addr= s.accept() #连接后会得到connect和一个address
print u"连接地址为",addr
c.send("成功连接至服务器") #向客户端发送消息
c.close() #关闭连接

#效果:运行成功后cosole应该是没有任何显示的

#可能会出现端口被占用的情况

#解决措施

#再新建一个client.py

 #!/usr/bin/env python
#coding:utf-8
import socket
s=socket.socket()
s.connect(('127.0.0.1',1234))
#s.recv(1024)表示每次最多接收1024字节的数据
print s.recv(1024) #这里收到的就是server的s.send()中的内容
s.close()

#在客户端运行代码后发现服务器端和客户端console显示如下,表示连接成功

#服务器端成功打印出链接地址(server.py中的addr)

#模拟客户端向服务器端发送消息

#服务器端

 #!/usr/bin/env python
#coding:utf-8
import socket
s= socket.socket()
#127.0.0.1是本地主机,1234是随意设置到一个端口号
s.bind(('127.0.0.1',1234)) #绑定端口号为1234 #等待客户端连接
s.listen(5)
while True:
c, addr= s.accept() #连接后会得到connect和一个address
print u"连接地址为",addr
c.send("成功连接至服务器") #向客户端发送消息 #eval将收到的字符串转化为dict
dict=eval(c.recv(1024))
if dict:
print "收到的日记为",dict
print "日记的标题为",dict['title']
print "日记的内容为",dict['content'] c.close() #关闭连接

#客户端

 #!/usr/bin/env python
#coding:utf-8
import socket
s= socket.socket()
#127.0.0.1是本地主机,1234是随意设置到一个端口号
s.bind(('127.0.0.1',1234)) #绑定端口号为1234 #等待客户端连接
s.listen(5)
while True:
c, addr= s.accept() #连接后会得到connect和一个address
print u"连接地址为",addr
c.send("成功连接至服务器") #向客户端发送消息 #eval将收到的字符串转化为dict
dict=eval(c.recv(1024))
if dict:
print "收到的日记为",dict
print "日记的标题为",dict['title']
print "日记的内容为",dict['content'] c.close() #关闭连接

#先运行服务器端,再运行客户端

#效果

程序媛计划——python socket通信的更多相关文章

  1. 程序媛计划——python数据库

    #实例:用数据库存储日记,实现日记本功能 #流程 #创建数据库 #coding:utf-8 import sqlite3 connect=sqlite3.connect('test.db') conn ...

  2. 程序媛计划——python中级课时1

    class1 异常处理 #python会把标准输入的内容当作字符串处理,即使输入的是数字3也会转化为字符串’3’. n1 = raw_input() n2 = raw_input() print n1 ...

  3. 程序媛计划——python正则表达式

    #定义 正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容,如判断一串数字是否是电话号码. #原理 先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本 ...

  4. 程序媛计划——python初级课时3~5

    产生1-10中的随机数: for 循环:所有可遍历对象都能用于for循环,如一个字符串. len(list),list中的元素类型可以各不相同:可以直接用下标对list元素赋值来更新列表 对字符串可以 ...

  5. 程序媛计划——python初级课时1~2

    在命令行中运行py文件:python 文件路径/文件名 python变量必须赋值后才能使用,因为py变量只有赋值后才会被创建. py可以同时给多个变量赋值:a,b,c = 10,20,'dfjkdj' ...

  6. 程序媛计划——python爬虫

    #用selenium打开百度首页 #第一次运行代码时应该在safari开发者选项中设置'allow remote automation' from selenium import webdriver ...

  7. 程序媛计划——python初级class5~13

    列表和元组都是可迭代对象(可以用于for in) 列表 [] #添加列表元素: list.append(argu) #修改列表: list[2] = 2017 #删除列表元素 Del list[2] ...

  8. Python Socket通信原理

    [Python之旅]第五篇(一):Python Socket通信原理   python Socket 通信理论 socket例子 摘要:  只要和网络服务涉及的,就离不开Socket以及Socket编 ...

  9. python - socket通信笔记

    参考: 通过编写聊天程序来熟悉python中多线程和socket的用法:https://www.cnblogs.com/mingjiatang/p/4905395.html python socket ...

随机推荐

  1. VK Cup 2016 D. Bear and Two Paths 模拟

    D. Bear and Two Paths time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  2. 局域网2台机器访问mysql服务器

  3. struts2用到的jar有那些

    struts2.0 lib/antlr-2.7.6.jarlib/struts2-core-2.0.14.jarlib/struts2-spring-plugin-2.0.14.jarlib/free ...

  4. Hadoop 1: NCDC 数据准备

    本文介绍Hadoop- The Definitive Guide一书中的NCDC数据准备,为后面的学习构建大数据环境; 环境 3节点 Hadoop 2.7.3 集群; java version &qu ...

  5. 安装指定版本的docker

    安装 Docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即 ...

  6. 2018.10.20 NOIP模拟 蛋糕(线段树+贪心/lis)

    传送门 听说是最长反链衍生出的对偶定理就能秒了. 本蒟蒻直接用线段树模拟维护的. 对于第一维排序. 维护第二维的偏序关系可以借助线段树/树状数组维护逆序对的思想建立权值线段树贪心求解. 代码

  7. HDU 1513 && POJ 1159 Palindrome (DP+LCS+滚动数组)

    题意:给定一个字符串,让你把它变成回文串,求添加最少的字符数. 析:动态规划是很明显的,就是没有了现思路,还是问的别人才知道,哦,原来要么写,既然是回文串, 那么最后正反都得是一样的,所以我们就正反求 ...

  8. Word图片上传控件(WordPaster)更新-2.0.15版本

    更新说明: 1.   增加对webp图片的支持,支持微信公众号图片的下载. 效果参考:http://www.ncmem.com/doc/view.aspx?id=9761f8ce4fe04d0ab0f ...

  9. 使用原生Java Web来实现大文件的上传

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  10. org.apache.cxf 官方骨架

    mvn archetype:generate -DarchetypeCatalog=remote 用 cxf 筛选结果 官方三大项目骨架 org.apache.cxf:cxf-http-basic ( ...