Python:socket编程,TCP/UDP

来源:互联网 发布:饿了么网络连接失败 编辑:程序博客网 时间:2024/05/13 03:09

一、TCP客户端/服务端

1.1 tcpSrv.py

#!/usr/bin/env pythonfrom socket import *from time import ctimeHOST = ""PORT = 6000BUFSIZE = 1024ADDR = (HOST, PORT)sockSrv = socket(AF_INET, SOCK_STREAM)sockSrv.bind(ADDR)sockSrv.listen(5)while True:        sockCli,addr = sockSrv.accept()        print "...connected from:", addr        while True:                data = sockCli.recv(BUFSIZE)                if not data:                        break                print data;                sockCli.send("[%s] %s" % (ctime(), data))        sockCli.close()sockSrv.close()

1.2 tcpCli.py

[root@localhost python]# vim tcpCli.py #!/usr/bin/env pythonfrom socket import *HOST = "localhost"PORT = 6000BUFSIZE = 1024ADDR = (HOST, PORT)sockCli = socket(AF_INET, SOCK_STREAM)sockCli.connect(ADDR)while True:        data = raw_input(">")        if not data:                break        sockCli.send(data)        data = sockCli.recv(BUFSIZE)        if not data:                break        print datasockCli.close()

二、UDP客户端/服务端

2.1 udpSrv.py

#!/usr/bin/env pythonfrom socket import *from time import ctimeHOST = ""PORT = 6000BUFSIZE = 1024ADDR = (HOST, PORT)sockSrv = socket(AF_INET, SOCK_DGRAM)sockSrv.bind(ADDR)while True:        data, addr = sockSrv.recvfrom(BUFSIZE)        print "receive %s from %s" % (data, addr)        sockSrv.sendto("[%s] %s"%(ctime(),data), addr)sockSrv.close()

2.2 udpCli.py

#!/usr/bin/env pythonfrom socket import *HOST = "localhost"PORT = 6000BUFSIZE = 1024ADDR = (HOST, PORT)sockCli = socket(AF_INET, SOCK_DGRAM)while True:        data = raw_input(">")        if not data:                break        sockCli.sendto(data, ADDR)        data, addr = sockCli.recvfrom(BUFSIZE)        if not data:                break        print datasockCli.close()


参考资料:

      《Python核心编程》:第16章 网络编程。



0 0
原创粉丝点击