牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2015-11-20 投稿人: 浏览次数:3469

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
", $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
", $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

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。