[python&php 网络编程]设定并获取socket超时时间

1.python写法

import socket

def test_socket_timeout():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print "Default socket timeout: %s" %s.gettimeout()
    s.settimeout(100)
    print "Current socket timeout: %s" %s.gettimeout()
    
if __name__ == '__main__':
    #针对单个socket实例的超时
    test_socket_timeout()

2.php写法

<?php
function test_socket_timeout(){
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $res = socket_get_option($socket, SOL_SOCKET, SO_RCVTIMEO);
    printf("Default socket timeout: %s\n", $res['sec']);

    $timeout = array('sec'=>100,'usec'=>0);
    socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,$timeout);
    $res = socket_get_option($socket,SOL_SOCKET,SO_RCVTIMEO);
    printf("Default socket timeout: %s\n", $res['sec']);
}

test_socket_timeout();

php的代码量还是会比较多点,python直接import socket库就行了,php要使用socket必须安装并开启socket扩展

socket的超时时间有发送超时和接受超时 两个默认是60秒 在php.ini里面可以设置 但这里我们主要针对单个socket实例
php 设置和获取socket参数主要使用socket_set_option和socket_get_option两个函数
http://php.net/manual/zh/function.socket-set-option.php
http://php.net/manual/zh/function.socket-get-option.php


转载请标注原文地址:http://blog.csdn.net/ddjohn/article/details/49946671


版权声明:本文为ddjohn原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。