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

时间:2022-10-28 17:47:58

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