程序媛计划——python socket通信

定义

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

#写服务期端程序server.py

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

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

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

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

#解决措施

#再新建一个client.py

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

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

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

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

#服务器端

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

#客户端

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

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

#效果

时间: 2024-12-17 07:59:31

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

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

产生1-10中的随机数: for 循环:所有可遍历对象都能用于for循环,如一个字符串. len(list),list中的元素类型可以各不相同:可以直接用下标对list元素赋值来更新列表 对字符串可以进行下标操作: 序列:python中最基本的数据结构,每个序列都有一个索引:python包括6种内置序列类型,如list,tuple:

程序媛计划——python初级课时1

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

程序媛计划——python网络编程

class1 正则表达式 #定义 正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容,如判断一串数字是否是电话号码. #原理 先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本并得到匹配结果,然后根据结果信息,进行其他的操作 1 #coding:utf-8 2 import re 3 pattern = re.compile(r'hello') #将正则表达式转化为pattern对象 4 match =pattern.match('hello,c

程序媛计划——python爬虫

#用selenium打开百度首页 #第一次运行代码时应该在safari开发者选项中设置'allow remote automation' 1 from selenium import webdriver 2 browser=webdriver.Safari() 3 browser.get('http://www.baidu.com/') 效果:

【Python之旅】第五篇(一):Python Socket通信原理

只要和网络服务涉及的,就离不开Socket以及Socket编程,下面就说说Python Socket通信的基本原理. 1.Socket socket也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.可以列举中国移动或者是中国电信等的电话客服,当然,也可以看下面的图片来作形象的说明. socket起源于Unix,而Unix/Linux基本哲学之一就是:一切皆文件,即都可以用"打开open-

python - socket通信笔记

参考: 通过编写聊天程序来熟悉python中多线程和socket的用法:https://www.cnblogs.com/mingjiatang/p/4905395.html python socket通信:https://yq.aliyun.com/articles/40745?spm=5176.100239.blogcont40768.17.FIFTZv 1.socket使用方法 a.在python中使用socket时要iamport socket b.在使用socket中又服务器端和客户端之

树莓派小车By 树莓派爱好者ITJoker(通过python socket通信实现树莓派视频小车)

本文由树莓派爱好者ITJoker 编辑,转载请注明出处.本人也有新浪博客同样是树莓派爱好者ITJoker可能名字少了IT... 所需材料:树莓派2B或者2B以上,L2985n驱动板,若干排线,电池及电池盒,usb无线网卡(免驱动),usb摄像头(免驱动). 所需环境:raspberry-gpio-python,以及安装mjpg-streamer及所需的环境.(这里就不多说了,等日后博主有时间增加这些环境的配置内容) 好了接下来开始我们的行动. 首先,开始我们先用4根母对母杜邦线分别连接L2985

Python socket通信~简单实例

socket编程步骤 服务端创建一个socket,绑定地址和端口,然后监听端口上传入的连接,一旦有连接进来,就通过accept函数接收传入的连接. 客户端也是创建一个socket.绑定远程地址和端口,然后建立连接,发送数据. family 地址簇,用与socket()函数的第一个参数.主要有以下几个 socket.AF_UNIX 用与单一机器下的进程通信 socket.AF_INET 用与服务器之间相互通信,通常都用这个. socket.AF_INET6 支持IPv6 sockettype so

python,socket通信编程,文件上传例子

写一个file_receive.py和一个file_send.py程序,由file_send.py上传一个文件,file_receive.py接收上传的文件,写到指定的包内 #file_receive.pyimport socket,subprocess,os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) sk = socket.socket() address = ('127.0.0.1',8001) sk.bind(address