python socket编程:时间戳服务端与客户端

今天来写一个TCP服务器程序以及TCP客户端程序,这个服务器程序会将客户发送来的字符串加上一个时间戳并且返回


服务器端:

from socket import *
from time import ctime

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

tcpSerSock=socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

while True:
	print('wait 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))
		
	tcpCliSock.close()

tcpSerSock.close()
空的HOST变量可以保证我们的bind函数绑定在任何地址上,PORT则是一个并未使用过的端口号,listen函数的参数表示服务器最多能接受的连接数,一旦超过这个数字,连接就会被拒绝

客户端:

from socket import *

HOST='localname'
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()

客户端的HOST则是本机的主机名,因为这个服务器和客户端都在本机运行,所以将HOST变量写成自己的主机名即可,为了成功通信,端口号必须相同。

怎么运行呢?


我们要先运行服务器再去运行客户端(不然就没意义了.....)

python socket编程:时间戳服务端与客户端_第1张图片

就这样~

你可能感兴趣的:(python)