程序媛计划——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()   #关闭连接

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

#效果

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