Python Network Programming

@1: 同步网络编程(也就是阻塞方式)

同步网络编程一次只能连接一个客户端。

Server端:

import socket

def debugPrint(name, value):
    print("{0}: {1}".format(name, value))

def server():
    #1:
    server = socket.socket()
    #NOTE: NOT "host = server.gethostname()"
    host = socket.gethostname()
    port = 8080
    #2:
    #NOTE: NOT "server.bind(host, port)" TypeError: bind() takes exactly one argument (2 given)
    server.bind((host, port))
    #3:
    server.listen(3)    #listen()的参数为允许等待的连接数
    while 1:
        #4:
        client, address = server.accept() #accept()会阻塞,直到有客户端连接
        debugPrint("client", client)
        debugPrint("address", address)
        #5:
        client.send("Welcome!")
        client.close()

def main():
    server()

Client端:

import socket
import server

def client():
    #1:
    client = socket.socket()
    host = socket.gethostname()
    port = 8080
    #2:
    client.connect((host, port))
    #3:
    content = client.recv(1024)
    server.debugPrint("From Server", content)

def main():
    client()

@2: 异步网络编程(也就是非阻塞方式)

异步网络编程, 允许多个客户端链接。

异步网络编程有3种实现方法: 分叉(多进程), 多线程,异步IO

分叉方式占据资源,windows不支持分叉; 多线程方式存在同步问题;

转载于:https://www.cnblogs.com/lxw0109/p/Python_Network_Programming.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Python Network Programming Cookbook, 2nd Edition" ISBN: 1786463997 | 2017 | PDF | 442 pages | 15.41 MB Key Features Solve real-world tasks in the area of network programming, system/networking administration, network monitoring, and more Familiarize yourself with the fundamentals and functionalities of SDN Improve your skills to become the next-gen network engineer by learning the various facets of Python programming Book Description Python is an excellent language to use to write code and have fun by prototyping a pplications quickly. The presence of lots of third-party libraries, also known as batteries, makes it easier and faster to prototype an application or to implement a new algorithm. If you are interested in creating the building blocks for many practical web and networking applications that rely on networking protocols, then this book is a must-have. It employs Python for network programming to solve a variety of problems. This book highlights the major aspects of network programming in Python, starting from writing simple networking clients to developing complex Software-Defined Networking (SDN) systems and programming the Internet. It creates the building blocks for many practical web and networking applications that rely on various networking protocols. It presents the power and beauty of Python to solve numerous real-world tasks in the area of network programming, system and network administration, network monitoring, and web-application development. In this edition, you will also be introduced to network modelling to build your own cloud network. You will learn about the concepts and fundamentals of SDN and then extend your network with Mininet. Next, you'll find recipes on Authentication, Authorization, and Accounting and other alternative vendor-specific SDN approaches and frameworks. You will also learn to configure the Linux Foundation networking ecosystem and automate your networks with Python. By the end of this book, you will be able to analyze your network security vulnerabilities using advanced network packet capture and analysis techniques.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值