Python 网络编程

Python网络编程


Python中的网络编程主要使用socket模块。模块中的socket()函数被用来创建套接字。

下面的代码分别实现了TCP的服务端和客户端,以及UDP的服务端和客户端。

 TCP服务端

#!/usr/bin/ env python
#coding=utf-8

from socket import *
from time import ctime

HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)

tcpSerSock.listen(5)

while True:
    print ('waiting for connection....')
    tcpCliSock, addr = tcpSerSock.accept()
    print('...connected from:', addr)
    # tcpCliSock.send('[%s] %s' %(ctime(),"Welcome to visit the blog of Chris! "))
    # tcpCliSock.close()
    while True:
        data = tcpCliSock.recv(BUFSIZ)
        if not data:
            break
        tcpCliSock.send('[%s] %s' %(ctime(),"Welcome to visit the blog of Chris! "))

    tcpCliSock.close()

tcpSerSock.close()


TCP客户端

#!/usr/bin/ env python
#coding=utf-8

from socket import *

HOST = 'LOCALHOST'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET,SOCK_STREAM)
tcpCliSock.connect(ADDR)

while True:
    data = raw_input('> ')
    if not data:
        break;
    tcpCliSock.send(data)
    data = tcpCliSock.recv(BUFSIZ)
    if not data:
        break
    print(data)

tcpCliSock.close()


UDP服务端

#!/usr/bin/ env python
#coding=utf-8

from socket import  *
from time import ctime

HOST = ''
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

udpSerSock = socket(AF_INET,SOCK_DGRAM)
udpSerSock.bind(ADDR)

while True:
    print('waiting for message...')
    data, addr = udpSerSock.recvfrom(BUFSIZ)
    udpSerSock.sendto('[%s] %s' %(ctime(),data), addr)
    print('...received from and returned to:', addr)

udpSerSock.close()


UDP客户端

#!/usr/bin/ env python
#coding=utf-8

from socket import *

HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

udpCliSock = socket(AF_INET, SOCK_DGRAM)

while True:
    data = raw_input('> ')
    if not data:
        break
    udpCliSock.sendto(data, ADDR)
    data,ADDR = udpCliSock.recvfrom(BUFSIZ)
    if not data:
        break
    print (data)

udpCliSock.close()



Twisted简介

Twisted是一个完全事件驱动的网络框架。它是一款完全异步的网络应用程序和协议。它可以让你创建一个包含网络协议,线程安全和认证,聊天/即时通讯,数据库管理,关系型数据库继承,网页/互联网,电子邮件,命令行参数,图形界面集成等完整的一个系统。

Twisted 模块并没有在Python中的标准库里,所以需要下载安装,我电脑上有两个版本的Python,所以要看好是安装在哪个版本里的。

这块以后有机会我们可以详细八一下。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值