定义

  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. php 使用html5 XHR2 上传文件 进度显示

    思路:只要我们知道上传文件的总大小,还有上传过程中上传文件的大小,那么就可以实现进度显示了. 在html5中,XMLHttpRequest对象,传送数据的时候,progress事件用来返回进度信息. ...

  2. jdk8 jvm配置参数说明

    这些选项是特定于Java HotSpot虚拟机的通用选项.-X 显示所有可用-X选项的帮助. -Xbatch 禁用后台编译.默认情况下,JVM将该方法编译为后台任务,以解释器模式运行该方法,直到后台编 ...

  3. inux中Vi不能高亮显示行号的解决办法

    适用版本:CentOS,RedHat,UBUNTU,Fedora解决办法如下: 在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc 在Fedora中vim的配置文件存 ...

  4. mysql简单实现查询结果添加序列号的方法

    方法1: SELECT @rownum :=@rownum + 1 AS rownum, t.* FROM integral_system_user t, (SELECT @rownum := 0) ...

  5. fms +fme 视频直播

    1.安装fms 按默认安装即可 2.安装fme 安装完成后启动fme FMS URL是发布到fms的地址默认就可以, 然后点击 Connect 连接成功后左下角会出现connected的提示, 然后点 ...

  6. hadoop 学习(二)ubuntu hadoop 2.7.0 伪分部安装

    本篇是基于上一篇,ubuntu 安装hadoop单机版基础上的 1.配置core-site.xml /usr/local/hadoop/etc/hadoop/core-site.xml 包含了hado ...

  7. 项目管理心得:一个项目经理的个人体会、经验总结(zz)

    本人做项目经理工作多年,感到做这个工作最要紧的就是要明白什么是因地制宜.因势利导,只有最合适的,没有什么叫对的,什么叫错的,项目经理最忌讳 的就是完美主义倾向,尤其是做技术人员出身的,喜欢寻找标准答案 ...

  8. 2018.09.28 bzoj3743: [Coci2015]Kamp(树形dp)

    传送门 这是一道很有意思的题. 我们把所有的关键点都提出来,当成一棵有边权的虚树. 然后发现虚树上除最后不回到虚根的那条路径外外每条边都会被走两遍. 显然要让答案最优,不走的路径应该在虚树的直径上,于 ...

  9. 着重基础之—MySql Blob类型和Text类型

    着重基础之—MySql Blob类型和Text类型 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格 ...

  10. hdu-1253(bfs+剪枝)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1253 思路:简单的bfs,就是要注意剪枝. #include<iostream> #inc ...