码迷,mamicode.com
首页 > 编程语言 > 详细

程序媛计划——python socket通信

时间:2017-09-20 12:12:56      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:log   com   socket通信   nec   color   127.0.0.1   /usr   env   bind   

定义

  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()   #关闭连接

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

#效果

技术分享

技术分享

 

程序媛计划——python socket通信

标签:log   com   socket通信   nec   color   127.0.0.1   /usr   env   bind   

原文地址:http://www.cnblogs.com/IcarusYu/p/7560230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!