码迷,mamicode.com
首页 > 其他好文 > 详细

socket 网络编程

时间:2018-01-28 23:16:12      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:isp   prot   hid   sed   ini   def   实现   img   port   

Python 提供了两个级别访问的网络服务:

  低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法

  高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发

socket()函数:

Python 中,我们用 socket()函数来创建套接字,语法格式如下:

socket.socket([family[, type[, proto]]])
  • family: 套接字家族可以使AF_UNIX或者AF_INET
  • type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM(for TCP)SOCK_DGRAM(for UDP)
  • protocol: 一般不填默认为0
sk = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)

其它socket对象内建方法可参考:

http://www.runoob.com/python/python-socket.html

https://docs.python.org/2/library/socketserver.html

示例:使用SocketServer实现中国移动客服接电话逻辑(异步多线程)

server.py

技术分享图片
 1 # !/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 ‘‘‘
 4 _author_=Captain
 5 ‘‘‘
 6 
 7 import SocketServer
 8 
 9 class Myserver(SocketServer.BaseRequestHandler):
10     def setup(self):
11         pass
12     def handle(self):
13         print self.request,self.client_address,self.server
14         conn=self.request
15         conn.sendall(欢迎致电 10086,请输入1xxx,0转人工服务.)
16         Flag = True
17         while Flag:
18             data = conn.recv(1024)
19             if data == exit:
20                 Flag = False
21             elif data == 0:
22                 conn.sendall(通过可能会被录音.balabala一大推)
23             else:
24                 conn.sendall(请重新输入.)
25     def finish(self):
26         pass
27 if __name__ == __main__:
28     server=SocketServer.ThreadingTCPServer((127.0.0.1,9999),Myserver)
29     server.serve_forever()
View Code

client.py

技术分享图片
 1 # !/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 ‘‘‘
 4 _author_=Captain
 5 ‘‘‘
 6 
 7 import socket
 8 
 9 ip_port=(127.0.0.1,9999)
10 conn = socket.socket()
11 conn.connect(ip_port)
12 while True:
13     print conn.recv(1024)  #输出接收到的数据
14     inp=raw_input("data:")
15     conn.sendall(inp)
16     if inp == exit:
17         break
18 
19 conn.close()
View Code

 

socket 网络编程

标签:isp   prot   hid   sed   ini   def   实现   img   port   

原文地址:https://www.cnblogs.com/honey-badger/p/8372679.html

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