1. 程式人生 > >[python&php 網路程式設計]重用socket地址

[python&php 網路程式設計]重用socket地址

1.python寫法

import socket

def reuse_socket_addr():
    sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )

    # Get the old state of the SO_REUSEADDR option
    old_state = sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR )
    print "Old sock state: %s" %old_state

    # Enable the SO_REUSEADDR option
    sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 )
    new_state = sock.getsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR )
    print "New sock state: %s" %new_state

    local_port = 8282
    
    srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    srv.bind( ('', local_port) )
    srv.listen(1)
    print ("Listening on port: %s " %local_port)
    while True:
        try:
            connection, addr = srv.accept()
            print 'Connected by %s:%s' % (addr[0], addr[1])
        except KeyboardInterrupt:
            break
        except socket.error, msg:
            print '%s' % (msg,)


if __name__ == '__main__':
    reuse_socket_addr()

2.php寫法
<?php

function reuse_socket_addr(){
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    // Get the old state of the SO_REUSEADDR option
    $old_state = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);
    printf("Old sock state: %s\n", $old_state);

    // Enable the SO_REUSEADDR option
    socket_set_option($socket,SOL_SOCKET,SO_REUSEADDR, 1);
    $new_state = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);
    printf("New sock state: %s\n", $new_state);

    $local_port = 8282;

    $srv = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_set_option($srv, SOL_SOCKET, SO_REUSEADDR, 1);
    socket_bind($srv, '127.0.0.1', $local_port);
    socket_listen($srv);
    printf("Listening on port: %s ", $local_port);

    while(true){
        $msg = socket_accept($srv);
        if($msg !== false){
            $buf = socket_read($srv, MAXLINE);
        }else{
            $error = socket_strerror(socket_last_error($srv));
            printf("%s", $error);
        }
    }
}

reuse_socket_addr();

轉載請標註原文地址:http://blog.csdn.net/ddjohn/article/details/49996669

相關推薦

[python&php 網路程式設計]重用socket地址

1.python寫法 import socket def reuse_socket_addr(): sock = socket.socket( socket.AF_INET, socket

[python&php 網路程式設計]設定並獲取socket超時時間

1.python寫法 import socket def test_socket_timeout(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "Default socket

python網路程式設計1-socket-tcp與udp

一、概念 兩個獨立python檔案之間可以通過寫入檔案,讀取檔案進行互動 由於不同機器上的程式要通訊,才產生了網路 B/S架構統一入口,各種小程式和公眾號 服務端 一直執行,等待服務別人 客戶端 用的時候,才使用服務 想要實現通訊 網絡卡 和 網線 網絡卡上有全球唯一的mac地址(實體地址) 4

python摸爬滾打之day26----網路程式設計socket

1、網路通訊原理   網際網路的本質就是一系列的網路協議, 統稱為網際網路協議.   網際網路協議的功能:定義計算機如何接入internet,以及接入internet的計算機通訊的標準。   網際網路協議按照功能不同分為osi七層或tcp/ip五層或tcp/ip四層.    對於tcp\

Python網路程式設計socket應用

1 引言 2 網路基礎 3 socket介紹 4 socket基本使用 5 總結 1 引言          本篇主要對Python下網路程式設計中用到的socket模組進行初步總結。首先從網路基礎理論出發,介紹了TC

python教程15、網路程式設計socket,socketserver,select,twisted

一、TCP/IP相關知識 TCP/UDP提供程序地址,兩個協議互不干擾的獨自的協議       TCP :Transmission Control Protocol 傳輸控制協議,面向連線的協議,通訊前需要建立通訊通道(虛擬鏈路),結束後拆除鏈路

Python網路程式設計socket模組基礎例項

[linux 公社]https://www.linuxidc.com/Linux/2018-12/155920.htm 1、引言 本文呢主要對Python網路程式設計中用到的socket模組進行初步總結。首先從網路基礎理論出發,介紹了TCP協議和UDP協議;然後總結了sock

Python 網路程式設計socket

網路程式設計:資訊傳輸一般會有兩步,一是傳送,一是接收。 socket 基礎應用,先建立一個客戶端,然後建立一個伺服器端。客戶端負責傳送訊息和接收伺服器發過來的訊息,伺服器端負責接收客戶端傳送過來的訊息和傳送訊息到客戶端。 客戶端 # 客戶端 import socket client = s

Python網路程式設計socket模組基礎例項!

  TCP是流協議,而UDP是資料報協議。換句話說,TCP在客戶機和伺服器之間建立持續的開放連線,在該連線的生命期內,位元組可以通過該連線寫出(並且保證順序正確)。然而,通過 TCP 寫出的位元組沒有內建的結構,所以需要高層協議在被傳輸的位元組流內部分隔資料記錄和欄位。 UD

python筆記(網路程式設計--socket模組(upd/tcp))

一、傳輸過程: 二、理解udp於tcp 三、udp/tcp對比 四、理解socket 五、socket模組下的tcp/udp協議 六、socket方法: Socket 物件(內建)方法(伺服器端套接字) 1、s.bind() :繫結地址(host,po

python 網路程式設計筆記-socket

python 提供了對底層網路程式設計的socket模組,也提供了諸如urllib、httplib、poplib、ftplib等針對特定功能的程式設計模組。 以下直接貼程式碼測試socket模式使用: 服務端:Server.py #-*- coding:gbk -*- ''

淺談網路程式設計Socket

前言 此文只是簡單概述Socket,Java程式設計的使用方法,還請移步Java 網路IO程式設計 Socket Socket是用來連線網路,進行傳輸資料的工具,Scoket大致分為兩種,TCP和UDP TCP: 服務端:建立Socket->繫結ip和埠號->接聽連線-&

淺談 TCP/IP 網路程式設計socket 的行為

來源:PromisE_謝  連結:www.cnblogs.com/promise6522/archive/2012/03/03/2377935.html 我認為,想要熟練掌握 Linux 下的 TCP/IP 網路程式設計,至少有三個層面的知識需要熟悉: TCP/IP

python學習-網路程式設計(一)

udp的接收和傳送資料程式碼: udp的傳送資料程式碼如下: import socket def main():     #建立套接字     udp_socket = socket.socket(socket.AF_I

Linux網路程式設計socket程式設計簡介、網路位元組序及相關函式

Socket(套接字) socket可以看成是使用者程序與核心網路協議棧的程式設計介面(API函式)。 socket不僅可以用於本機的程序間通訊,還可以用於網路上不同主機的程序間通訊。 IPv4套接字地址結構 IPv4套接字地址結構通常也稱為“網際套接字地址結構”,它以

Python神經網路程式設計 pdf 中文版下載

當前,深度學習和人工智慧的發展和應用給人們留下了深刻的印象。神經網路是深度學習和人工智慧的關鍵元素,然而,真正瞭解神經網路工作機制的人少之又少。本書用輕鬆的筆觸,一步一步揭示了神經網路的數學思想,並介紹如何使用Python程式語言開發神經網路。 本書將帶領您進行一場妙趣橫生卻又有條不紊的旅

Make your own neural network(Python神經網路程式設計)一

  這本書應該算我第一本深度學習的程式碼入門書了吧,之前看阿里云云棲社和景略集智都有推薦這本書就去看了,   成功建立了自己的第一個神經網路,也瞭解一些關於深度學習的內容,再加上這學期的概率論與數理統計的課,   現在再來看李大大的機器學習課程,終於能看懂LogisticsRegression概率那部分公

聰哥哥教你學Python網路程式設計

網路程式設計,又稱Socket程式設計。 說到網路程式設計,大家都想起一個東西,那就是TCP/IP。 絕大多數程式語言都有對TCP/IP的操作API。 聰哥哥我今天主要圍繞兩個方面談談網路程式設計。一個TCP,另外一個就是UDP。 關於TCP和UDP,它們無論是在Java,還是在Py

PYTHON03 - re模組 網路程式設計socket模組

一、re模組 1.1 正則表示式 1.1.1 正則表示式 1.匹配單個字元 2.匹配一組字元 3.其他元字元 附:  [ ^ ]:出現在中括號開頭表示的是取反 4.貪婪匹配 1.  *、+和?都是貪婪匹配操作符,在其後加

Make your own neural network(Python神經網路程式設計)三

前兩篇程式碼寫了初始化與查詢,知道了S函式,初始權重矩陣。以及神經網路的計算原理,總這一篇起就是最重要的神經網路的訓練了。 神經網路的訓練簡單點來講就是讓輸出的東西更加接近我們的預期。比如我們輸出的想要是1,但是輸出了-0.5,明顯不是 我們想要的。 誤差=(期望的數值)-(實際輸出),那麼我們的誤差就是