在python socket编程主要是面各tcp 和 udp编程。下面我们就用这两种不同的编程方式来实现一个从客服端发送信息到服务器端, 服务器端返回客服器现在时间和接收到的信息 我们先来实现tcp的编程 tcp 服务端代码(tsTserv.py):
tcp客服端代码(tsTclnt.py):
ok 我们现在来看下效果图: 实现upd 编程 udp服务端代码(tsUserv.py):
udp 客服端代码(tsUclnt.py):
ok 完成,来看下效果图
- '''''
- Created on 2010-12-13
- @author: Administrator
- '''
- from socket import *
- from time import ctime
- HOST=''
- PORT=21582
- 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
- while True:
- data=tcpCliSock.recv(BUFSIZ)
- if not data:
- break
- tcpCliSock.send('[%s] %s' %(ctime(),data))
- tcpSerSock.close()
- tcpCliSock.close()
- '''''
- Created on 2010-12-13
- @author: Administrator
- '''
- from socket import *
- HOST='localhost'
- PORT=21582
- 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()
- '''''
- Created on 2010-12-13
- @author: Administrator
- '''
- from socket import *
- from time import ctime
- HOST=''
- PORT=21590
- 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()
- '''''
- Created on 2010-12-13
- @author: Administrator
- '''
- from socket import *
- from time import ctime
- HOST='localhost'
- PORT=21590
- BUFSIZ=1024
- ADDR=(HOST,PORT)
- udpCliSock=socket(AF_INET,SOCK_DGRAM)
- while True:
- data=raw_input('>')
- if not data:
- break
- print data
- udpCliSock.sendto(data,ADDR)
- data,ADDR=udpCliSock.recvfrom(BUFSIZ)
- if not data:
- break
- print data
- udpCliSock.close()