Python网络编程入门

TCP
TCP服务器

from socket import *

from time import ctime

HOST = ''

PORT = 12345

BUFSIZE = 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

    while True:

        data = tcpCliSock.recv(BUFSIZE)

        if not data:

            break

        tcpCliSock.send('[%s]%s'%(ctime(),data))

    tcpCliSock.close()

tcpSerSock.close()


TCP客户端

from socket import *

HOST = 'localhost'

PORT = 12345

ADDR = (HOST,PORT)

BUFSIZE = 1024

tcpCliSock = socket(AF_INET,SOCK_STREAM)

tcpCliSock.connect(ADDR)

while True:

    data = raw_input('input:')

    if not data:

        break

    tcpCliSock.send(data)

    data = tcpCliSock.recv(BUFSIZE)

    if not data:

        break

    print data

tcpCliSock.close()


UDP
UDP服务器

from socket import *

from time import ctime

HOST = ''

PORT = 12345

BUFSIZE = 1024

ADDR = (HOST,PORT)

udpSerSock = socket(AF_INET,SOCK_DGRAM)

udpSerSock.bind(ADDR)

while True:

    print 'waiting for message...'

    data, addr = udpSerSock.recvfrom(BUFSIZE)

    udpSerSock.sendto('[%s]%s'%(ctime(),data),addr)

    print 'received from and returned to :',addr

udpSerSock.close()


UDP客户端

from socket import *

HOST = 'localhost'

PORT = 12345

ADDR = (HOST,PORT)

BUFSIZE = 1024

udpCliSock = socket(AF_INET,SOCK_DGRAM)

while True:

    data = raw_input('input:')

    if not data:

        break

    udpCliSock.sendto(data,ADDR)

    data,ADDR = udpCliSock.recvfrom(BUFSIZE)

    if not data:

        break

    print data

udpCliSock.close()


利用SocketServer模块实现网络通信
SocketServer是标准库中一个高级别的模块。用于简化网络客户与服务器的实现
SocketServerTCP服务器

# -*- coding: cp936 -*-

from SocketServer import (TCPServer as TCP,StreamRequestHandler as SRH)

from time import ctime

HOST = ''

PORT = 1234

ADDR = (HOST,PORT)

#继承StreamRequestHandler

class MyRequestHandler(SRH):

    #重写方法handle

    def handle(self):

        print 'connected from :',self.client_address

        data = self.rfile.readline()

        self.wfile.write('[%s]%s'%(ctime(),data))

tcpServer = TCP(ADDR,MyRequestHandler)

print 'waiting for connection'

tcpServer.serve_forever()


SocketServerTCP客户端

# -*- coding: cp936 -*-

from socket import *

HOST = 'localhost'

PORT = 1234

ADDR = (HOST,PORT)

BUFSIZE = 1024

while True:

    tcpCliSock = socket(AF_INET,SOCK_STREAM)

    tcpCliSock.connect(ADDR)

    data = raw_input('输入:')

    if not data:

        break

    tcpCliSock.send('%s\n'%data)   #如果没有'%s\n'收不到,因为是一行行读的

    data = tcpCliSock.recv(BUFSIZE)

    if not data:

        break

    print data

tcpCliSock.close()













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值