zoukankan      html  css  js  c++  java
  • SOCKET

    socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过“套接字”向网络发出请求或者应答网络请求

    socket既是一种特殊文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)

    socket和file的区别

    file模块是针对某个指定文件进行【打开】【读写】【关闭】

    socket模块是针对服务器端和客户端socket进行【打开】【读写】【关闭】

    实例:

    在wen页面中访问

    返回http 1.1 200 OK和HelloWorld

    #!/usr/bin/env python
    #coding:utf-8
    import socket
    
    def handle_request(client):
        client.send("HTTP/1.1 200 OK
    
    ")
        client.send("Hello, World")
    
    
    def main():
        # 创建sock对象
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 监听端口
        sock.bind(('localhost',8080))
        # 开始监听
        sock.listen(5)
    
    
        while True:
            # 阻塞,等连接的请求,直到有请求来连接
            # connection:代表客户端sock的对象
            # address:客户端IP地址
            connection, address = sock.accept()
            buf = connection.recv(1024)
            print buf
            connection.send('http1.1 200 OK
    
    ')
            connection.send("Hello World")
            connection.close()
    
    if __name__ == '__main__':
    
      main()

    实例:10086服务

    服务端:

    import socket
    
    ip_port = ('127.0.0.1',8888)
    sk = socket.socket()
    sk.bind(ip_port)
    sk.listen(5)
    
    while True:
        conn,address =  sk.accept()
        conn.sendall('欢迎致电 10086,请输入1xxx,0转人工服务.')
        Flag = True
        while Flag:
            data = conn.recv(1024)
            if data == 'exit':
                Flag = False
            elif data == '0':
                conn.sendall('通过可能会被录音.........一大推')
            else:
                conn.sendall('请重新输入.')
        conn.close()

    客户端:

    import socket
    ip_port = ('127.0.0.1',8888)
    sk = socket.socket()
    sk.connect(ip_port)
    sk.settimeout(5)
    
    while True:
        data = sk.recv(1024)
        print 'receive:',data
        inp = raw_input('please input:')
        sk.sendall(inp)
        if inp == 'exit':
            break
    
    sk.close()

     

  • 相关阅读:
    Sybase自增字段跳号的解决方法
    sybase从表A创建表B
    timed out waiting for input: auto-logout
    关闭归档提示:ORA-38774: cannot disable media recovery
    vmware下给linux添加硬盘
    oracle 双机热备,oracle dataguard 和oracle rac的区别和联系(转)
    with admin option 与with grant option
    Python yield 使用浅析
    支持向量机的优缺点
    PCA MATLAB
  • 原文地址:https://www.cnblogs.com/caoxiaojian/p/5058299.html
Copyright © 2011-2022 走看看